diff --git a/.github/workflows/fabricv4_test_runner.yml b/.github/workflows/fabricv4_test_runner.yml index 1f2d149c..4d28d9ce 100644 --- a/.github/workflows/fabricv4_test_runner.yml +++ b/.github/workflows/fabricv4_test_runner.yml @@ -32,7 +32,7 @@ jobs: uses: actions/cache/save@v4 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml', 'services/fabricv4/src/**/*.java') }} test: needs: build @@ -77,7 +77,7 @@ jobs: uses: actions/cache/restore@v4 with: path: ~/.m2/repository - key: ${{ runner.os }}-maven + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml', 'services/fabricv4/src/**/*.java') }} - name: Tests working-directory: ./equinix-openapi-fabric-tests 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 cc09a48a..a3d45ee9 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 @@ -83,9 +83,11 @@ public void deleteCloudRouterByUuid() throws ApiException { public void getCloudRouterActions() throws ApiException { CloudRouter cloudRouter = createRouter(); cloudRoutersApi.createCloudRouterAction(cloudRouter.getUuid(), new CloudRouterActionRequest().type(CloudRouterActionType.ROUTE_TABLE_ENTRY_UPDATE)); - CloudRouterActionResponse cloudRouterActionResponse = cloudRoutersApi.getCloudRouterActions(cloudRouter.getUuid(), CloudRouterActionState.SUCCEEDED); + CloudRouterActionsSearchResponse cloudRouterActionsSearchResponse = cloudRoutersApi.getCloudRouterActions(cloudRouter.getUuid(), CloudRouterActionState.SUCCEEDED); assertEquals(200, cloudRoutersApi.getApiClient().getStatusCode()); - assertEquals(cloudRouterActionResponse.getType(), CloudRouterActionType.ROUTE_TABLE_ENTRY_UPDATE); + assertNotNull(cloudRouterActionsSearchResponse.getData()); + assertFalse(cloudRouterActionsSearchResponse.getData().isEmpty()); + assertEquals(cloudRouterActionsSearchResponse.getData().get(0).getType(), CloudRouterActionType.ROUTE_TABLE_ENTRY_UPDATE); } /** diff --git a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/PortsApiTest.java b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/PortsApiTest.java index 0ba3d138..12afb38c 100644 --- a/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/PortsApiTest.java +++ b/equinix-openapi-fabric-tests/src/test/java/com/equinix/openapi/fabric/tests/PortsApiTest.java @@ -70,7 +70,7 @@ public static AllPortsResponse getPorts(UsersItem.UserName userName) throws ApiE .pagination(new PaginationRequest() .offset(0) .limit(100)) - .sort(singletonList(new PortSortCriteria().property(PortSortBy._DEVICE_NAME).direction(PortSortDirection.DESC))); + .sort(singletonList(new PortSortCriteria().property(PortSortBy.DEVICE_NAME).direction(PortSortDirection.DESC))); return portsApi.searchPorts(portV4SearchRequest); } diff --git a/patches/services/fabricv4/001-fix-json-patch-operation-oneof-deserialization.patch b/patches/services/fabricv4/001-fix-json-patch-operation-oneof-deserialization.patch new file mode 100644 index 00000000..c36a12c9 --- /dev/null +++ b/patches/services/fabricv4/001-fix-json-patch-operation-oneof-deserialization.patch @@ -0,0 +1,48 @@ +diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java +index 4a87dd55..d0ad5665 100644 +--- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java ++++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java +@@ -248,6 +248,11 @@ public class AddOperation { + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `op` + OpEnum.validateJsonElement(jsonObj.get("op")); ++ // check op value matches "add" for AddOperation ++ String opValue = jsonObj.get("op").getAsString(); ++ if (!"add".equals(opValue)) { ++ throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='add' for AddOperation but got `%s`", opValue)); ++ } + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } +diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java +index b03e1b13..6f0ee59e 100644 +--- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java ++++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java +@@ -222,6 +222,11 @@ public class RemoveOperation { + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `op` + OpEnum.validateJsonElement(jsonObj.get("op")); ++ // check op value matches "remove" for RemoveOperation ++ String opValue = jsonObj.get("op").getAsString(); ++ if (!"remove".equals(opValue)) { ++ throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='remove' for RemoveOperation but got `%s`", opValue)); ++ } + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } +diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java +index af7babd0..f73d91ac 100644 +--- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java ++++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java +@@ -248,6 +248,11 @@ public class ReplaceOperation { + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the required field `op` + OpEnum.validateJsonElement(jsonObj.get("op")); ++ // check op value matches "replace" for ReplaceOperation ++ String opValue = jsonObj.get("op").getAsString(); ++ if (!"replace".equals(opValue)) { ++ throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='replace' for ReplaceOperation but got `%s`", opValue)); ++ } + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } diff --git a/services/fabricv4/README.md b/services/fabricv4/README.md index 7bbc1b6f..c8bc32f0 100644 --- a/services/fabricv4/README.md +++ b/services/fabricv4/README.md @@ -1,7 +1,7 @@ # fabricv4 Equinix Fabric API v4 -- API version: 4.27 +- API version: 4.28 - Generator version: 7.16.0 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
@@ -86,7 +86,7 @@ import com.equinix.sdk.fabricv4.ApiException; import com.equinix.sdk.fabricv4.Configuration; import com.equinix.sdk.fabricv4.auth.*; import com.equinix.sdk.fabricv4.model.*; -import com.equinix.sdk.fabricv4.api.CloudEventsApi; +import com.equinix.sdk.fabricv4.api.AgentTemplatesApi; public class Example { public static void main(String[] args) { @@ -97,13 +97,15 @@ public class Example { HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); BearerAuth.setBearerToken("BEARER TOKEN"); - CloudEventsApi apiInstance = new CloudEventsApi(defaultClient); - UUID cloudEventId = UUID.randomUUID(); // UUID | Cloud Event UUID + AgentTemplatesApi apiInstance = new AgentTemplatesApi(defaultClient); + UUID agentTemplateId = UUID.randomUUID(); // UUID | Agent Template UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch try { - CloudEvent result = apiInstance.getCloudEvent(cloudEventId); + AgentTemplates result = apiInstance.getAgentTemplateByUuid(agentTemplateId, offset, limit); System.out.println(result); } catch (ApiException e) { - System.err.println("Exception when calling CloudEventsApi#getCloudEvent"); + System.err.println("Exception when calling AgentTemplatesApi#getAgentTemplateByUuid"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -120,6 +122,14 @@ All URIs are relative to *https://api.equinix.com* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*AgentTemplatesApi* | [**getAgentTemplateByUuid**](docs/AgentTemplatesApi.md#getAgentTemplateByUuid) | **GET** /fabric/v4/agentTemplates/{agentTemplateId} | Get Agent Template by UUID +*AgentTemplatesApi* | [**getAgentTemplates**](docs/AgentTemplatesApi.md#getAgentTemplates) | **GET** /fabric/v4/agentTemplates | Get Agent Templates +*AgentsApi* | [**createAgent**](docs/AgentsApi.md#createAgent) | **POST** /fabric/v4/agents | Create Agent +*AgentsApi* | [**deleteAgentByUuid**](docs/AgentsApi.md#deleteAgentByUuid) | **DELETE** /fabric/v4/agents/{agentId} | Delete Agent by UUID +*AgentsApi* | [**getAgentActivities**](docs/AgentsApi.md#getAgentActivities) | **GET** /fabric/v4/agents/{agentId}/activities | Get Agent Activities +*AgentsApi* | [**getAgentByUuid**](docs/AgentsApi.md#getAgentByUuid) | **GET** /fabric/v4/agents/{agentId} | Get Agent by UUID +*AgentsApi* | [**getAgents**](docs/AgentsApi.md#getAgents) | **GET** /fabric/v4/agents | Get Agents +*AgentsApi* | [**patchAgentByUuid**](docs/AgentsApi.md#patchAgentByUuid) | **PATCH** /fabric/v4/agents/{agentId} | Update Agent by UUID *CloudEventsApi* | [**getCloudEvent**](docs/CloudEventsApi.md#getCloudEvent) | **GET** /fabric/v4/cloudevents/{cloudEventId} | Get Cloud Event *CloudEventsApi* | [**getCloudEventByAssetId**](docs/CloudEventsApi.md#getCloudEventByAssetId) | **GET** /fabric/v4/{asset}/{assetId}/cloudevents | Get Cloud Events by Asset Id *CloudEventsApi* | [**searchCloudEvents**](docs/CloudEventsApi.md#searchCloudEvents) | **POST** /fabric/v4/cloudevents/search | Search Cloud Events @@ -207,6 +217,7 @@ Class | Method | HTTP request | Description *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 +*RouteAggregationRulesApi* | [**searchRouteAggregationRules**](docs/RouteAggregationRulesApi.md#searchRouteAggregationRules) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search | Search Route Aggregation Rules *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 @@ -218,6 +229,7 @@ Class | Method | HTTP request | Description *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* | [**searchCloudRouterRouteAggregationAttachments**](docs/RouteAggregationsApi.md#searchCloudRouterRouteAggregationAttachments) | **POST** /fabric/v4/routers/{routerId}/routeAggregations/search | Search Cloud Router Route Aggregation Attachments *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 @@ -228,6 +240,7 @@ Class | Method | HTTP request | Description *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 +*RouteFilterRulesApi* | [**searchRouteFilterRules**](docs/RouteFilterRulesApi.md#searchRouteFilterRules) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search | Search Route Filter Rules *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 @@ -239,6 +252,7 @@ Class | Method | HTTP request | Description *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 All Connections on Route Filter *RouteFiltersApi* | [**patchRouteFilterByUuid**](docs/RouteFiltersApi.md#patchRouteFilterByUuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter +*RouteFiltersApi* | [**searchCloudRouterRouteFilterAttachments**](docs/RouteFiltersApi.md#searchCloudRouterRouteFilterAttachments) | **POST** /fabric/v4/routers/{routerId}/routeFilters/search | Search Cloud Router Route Filter Attachments *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 *RoutingProtocolsApi* | [**createConnectionRoutingProtocolsInBulk**](docs/RoutingProtocolsApi.md#createConnectionRoutingProtocolsInBulk) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols/bulk | Bulk Create Protocol @@ -254,6 +268,7 @@ Class | Method | HTTP request | Description *RoutingProtocolsApi* | [**replaceConnectionRoutingProtocolByUuid**](docs/RoutingProtocolsApi.md#replaceConnectionRoutingProtocolByUuid) | **PUT** /fabric/v4/connections/{connectionId}/routingProtocols/{routingProtocolId} | Replace Protocol *RoutingProtocolsApi* | [**validateRoutingProtocol**](docs/RoutingProtocolsApi.md#validateRoutingProtocol) | **POST** /fabric/v4/routers/{routerId}/validate | Validate Subnet *ServiceProfilesApi* | [**createServiceProfile**](docs/ServiceProfilesApi.md#createServiceProfile) | **POST** /fabric/v4/serviceProfiles | Create Profile +*ServiceProfilesApi* | [**createServiceProfileAction**](docs/ServiceProfilesApi.md#createServiceProfileAction) | **POST** /fabric/v4/serviceProfiles/{serviceProfileId}/actions | Profile Actions *ServiceProfilesApi* | [**deleteServiceProfileByUuid**](docs/ServiceProfilesApi.md#deleteServiceProfileByUuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile *ServiceProfilesApi* | [**getServiceProfileByUuid**](docs/ServiceProfilesApi.md#getServiceProfileByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile *ServiceProfilesApi* | [**getServiceProfileMetrosByUuid**](docs/ServiceProfilesApi.md#getServiceProfileMetrosByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros @@ -271,7 +286,7 @@ Class | Method | HTTP request | Description *StatisticsApi* | [**getConnectionStatsByPortUuid**](docs/StatisticsApi.md#getConnectionStatsByPortUuid) | **GET** /fabric/v4/connections/{connectionId}/stats | Get Stats by uuid **(DEPRECATED)** *StatisticsApi* | [**getPortStatsByPortUuid**](docs/StatisticsApi.md#getPortStatsByPortUuid) | **GET** /fabric/v4/ports/{portId}/stats | Get Stats by uuid **(DEPRECATED)** *StreamAlertRulesApi* | [**createStreamAlertRules**](docs/StreamAlertRulesApi.md#createStreamAlertRules) | **POST** /fabric/v4/streams/{streamId}/alertRules | Create Stream Alert Rules -*StreamAlertRulesApi* | [**deleteStreamAlertRuleByUuid**](docs/StreamAlertRulesApi.md#deleteStreamAlertRuleByUuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules +*StreamAlertRulesApi* | [**deleteStreamAlertRuleByUuid**](docs/StreamAlertRulesApi.md#deleteStreamAlertRuleByUuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Delete Stream Alert Rules *StreamAlertRulesApi* | [**getStreamAlertRuleByUuid**](docs/StreamAlertRulesApi.md#getStreamAlertRuleByUuid) | **GET** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Get Stream Alert Rules *StreamAlertRulesApi* | [**getStreamAlertRules**](docs/StreamAlertRulesApi.md#getStreamAlertRules) | **GET** /fabric/v4/streams/{streamId}/alertRules | Get Stream Alert Rules *StreamAlertRulesApi* | [**updateStreamAlertRuleByUuid**](docs/StreamAlertRulesApi.md#updateStreamAlertRuleByUuid) | **PUT** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules @@ -300,6 +315,18 @@ Class | Method | HTTP request | Description - [AccessPointType](docs/AccessPointType.md) - [Actions](docs/Actions.md) - [AddOperation](docs/AddOperation.md) + - [Agent](docs/Agent.md) + - [AgentActivities](docs/AgentActivities.md) + - [AgentActivitiesMetadata](docs/AgentActivitiesMetadata.md) + - [AgentDefinition](docs/AgentDefinition.md) + - [AgentGetActivities](docs/AgentGetActivities.md) + - [AgentGetAllResponse](docs/AgentGetAllResponse.md) + - [AgentPatchRequest](docs/AgentPatchRequest.md) + - [AgentPostRequest](docs/AgentPostRequest.md) + - [AgentTemplate](docs/AgentTemplate.md) + - [AgentTemplateGetAllResponse](docs/AgentTemplateGetAllResponse.md) + - [AgentTemplates](docs/AgentTemplates.md) + - [Agents](docs/Agents.md) - [AlertRulePostRequest](docs/AlertRulePostRequest.md) - [AlertRulePutRequest](docs/AlertRulePutRequest.md) - [AllPhysicalPortsResponse](docs/AllPhysicalPortsResponse.md) @@ -327,6 +354,7 @@ Class | Method | HTTP request | Description - [BulkPortRequest](docs/BulkPortRequest.md) - [Change](docs/Change.md) - [Changelog](docs/Changelog.md) + - [ChatMessage](docs/ChatMessage.md) - [CloudEvent](docs/CloudEvent.md) - [CloudEventAssetType](docs/CloudEventAssetType.md) - [CloudEventData](docs/CloudEventData.md) @@ -376,6 +404,20 @@ Class | Method | HTTP request | Description - [CloudRouterPostRequest](docs/CloudRouterPostRequest.md) - [CloudRouterPostRequestBase](docs/CloudRouterPostRequestBase.md) - [CloudRouterPostRequestPackage](docs/CloudRouterPostRequestPackage.md) + - [CloudRouterRouteAggregationAndExpression](docs/CloudRouterRouteAggregationAndExpression.md) + - [CloudRouterRouteAggregationExpression](docs/CloudRouterRouteAggregationExpression.md) + - [CloudRouterRouteAggregationOrExpression](docs/CloudRouterRouteAggregationOrExpression.md) + - [CloudRouterRouteAggregationSimpleExpression](docs/CloudRouterRouteAggregationSimpleExpression.md) + - [CloudRouterRouteAggregationsFilter](docs/CloudRouterRouteAggregationsFilter.md) + - [CloudRouterRouteAggregationsSearchBase](docs/CloudRouterRouteAggregationsSearchBase.md) + - [CloudRouterRouteAggregationsSearchResponse](docs/CloudRouterRouteAggregationsSearchResponse.md) + - [CloudRouterRouteFilterAndExpression](docs/CloudRouterRouteFilterAndExpression.md) + - [CloudRouterRouteFilterExpression](docs/CloudRouterRouteFilterExpression.md) + - [CloudRouterRouteFilterOrExpression](docs/CloudRouterRouteFilterOrExpression.md) + - [CloudRouterRouteFilterSimpleExpression](docs/CloudRouterRouteFilterSimpleExpression.md) + - [CloudRouterRouteFiltersFilter](docs/CloudRouterRouteFiltersFilter.md) + - [CloudRouterRouteFiltersSearchBase](docs/CloudRouterRouteFiltersSearchBase.md) + - [CloudRouterRouteFiltersSearchResponse](docs/CloudRouterRouteFiltersSearchResponse.md) - [CloudRouterSearchRequest](docs/CloudRouterSearchRequest.md) - [CloudRouterSimpleExpression](docs/CloudRouterSimpleExpression.md) - [CloudRouterSortBy](docs/CloudRouterSortBy.md) @@ -388,6 +430,7 @@ Class | Method | HTTP request | Description - [CompanyProfileChange](docs/CompanyProfileChange.md) - [CompanyProfileRequest](docs/CompanyProfileRequest.md) - [CompanyProfileResponse](docs/CompanyProfileResponse.md) + - [CompanyProfileResponseAccount](docs/CompanyProfileResponseAccount.md) - [CompanyProfileSearchFilter](docs/CompanyProfileSearchFilter.md) - [CompanyProfileSearchRequest](docs/CompanyProfileSearchRequest.md) - [CompanyProfileSearchResponse](docs/CompanyProfileSearchResponse.md) @@ -485,6 +528,7 @@ Class | Method | HTTP request | Description - [MarketingInfo](docs/MarketingInfo.md) - [MarketplaceSubscription](docs/MarketplaceSubscription.md) - [Md5](docs/Md5.md) + - [MessagesInner](docs/MessagesInner.md) - [MetalInterconnection](docs/MetalInterconnection.md) - [Metric](docs/Metric.md) - [MetricAssetType](docs/MetricAssetType.md) @@ -499,6 +543,7 @@ Class | Method | HTTP request | Description - [Metro](docs/Metro.md) - [MetroError](docs/MetroError.md) - [MetroResponse](docs/MetroResponse.md) + - [ModelConfiguration](docs/ModelConfiguration.md) - [ModelInterface](docs/ModelInterface.md) - [ModelPackage](docs/ModelPackage.md) - [Network](docs/Network.md) @@ -599,6 +644,7 @@ Class | Method | HTTP request | Description - [Project](docs/Project.md) - [ProviderStatus](docs/ProviderStatus.md) - [PtpAdvanceConfiguration](docs/PtpAdvanceConfiguration.md) + - [RaAttachmentSortItem](docs/RaAttachmentSortItem.md) - [RemoveOperation](docs/RemoveOperation.md) - [ReplaceOperation](docs/ReplaceOperation.md) - [ResourceData](docs/ResourceData.md) @@ -607,9 +653,17 @@ Class | Method | HTTP request | Description - [ResponseIncompleteDetails](docs/ResponseIncompleteDetails.md) - [ResponseUsageInputTokensDetails](docs/ResponseUsageInputTokensDetails.md) - [ResponseUsageOutputTokensDetails](docs/ResponseUsageOutputTokensDetails.md) + - [RfAttachmentSortItem](docs/RfAttachmentSortItem.md) - [RouteAggregationChangeData](docs/RouteAggregationChangeData.md) - [RouteAggregationChangeDataResponse](docs/RouteAggregationChangeDataResponse.md) - [RouteAggregationConnectionsData](docs/RouteAggregationConnectionsData.md) + - [RouteAggregationRuleAndExpression](docs/RouteAggregationRuleAndExpression.md) + - [RouteAggregationRuleExpression](docs/RouteAggregationRuleExpression.md) + - [RouteAggregationRuleOrExpression](docs/RouteAggregationRuleOrExpression.md) + - [RouteAggregationRuleSimpleExpression](docs/RouteAggregationRuleSimpleExpression.md) + - [RouteAggregationRuleSortBy](docs/RouteAggregationRuleSortBy.md) + - [RouteAggregationRuleSortCriteria](docs/RouteAggregationRuleSortCriteria.md) + - [RouteAggregationRuleSortDirection](docs/RouteAggregationRuleSortDirection.md) - [RouteAggregationRuleState](docs/RouteAggregationRuleState.md) - [RouteAggregationRulesBase](docs/RouteAggregationRulesBase.md) - [RouteAggregationRulesChange](docs/RouteAggregationRulesChange.md) @@ -617,8 +671,11 @@ Class | Method | HTTP request | Description - [RouteAggregationRulesChangeDataResponse](docs/RouteAggregationRulesChangeDataResponse.md) - [RouteAggregationRulesChangeOperation](docs/RouteAggregationRulesChangeOperation.md) - [RouteAggregationRulesData](docs/RouteAggregationRulesData.md) + - [RouteAggregationRulesFilter](docs/RouteAggregationRulesFilter.md) - [RouteAggregationRulesPatchRequestItem](docs/RouteAggregationRulesPatchRequestItem.md) - [RouteAggregationRulesPostRequest](docs/RouteAggregationRulesPostRequest.md) + - [RouteAggregationRulesSearchRequest](docs/RouteAggregationRulesSearchRequest.md) + - [RouteAggregationRulesSearchResponse](docs/RouteAggregationRulesSearchResponse.md) - [RouteAggregationSortItem](docs/RouteAggregationSortItem.md) - [RouteAggregationState](docs/RouteAggregationState.md) - [RouteAggregationsBase](docs/RouteAggregationsBase.md) @@ -634,6 +691,13 @@ Class | Method | HTTP request | Description - [RouteFilterChangeData](docs/RouteFilterChangeData.md) - [RouteFilterChangeDataResponse](docs/RouteFilterChangeDataResponse.md) - [RouteFilterConnectionsData](docs/RouteFilterConnectionsData.md) + - [RouteFilterRuleAndExpression](docs/RouteFilterRuleAndExpression.md) + - [RouteFilterRuleExpression](docs/RouteFilterRuleExpression.md) + - [RouteFilterRuleOrExpression](docs/RouteFilterRuleOrExpression.md) + - [RouteFilterRuleSimpleExpression](docs/RouteFilterRuleSimpleExpression.md) + - [RouteFilterRuleSortBy](docs/RouteFilterRuleSortBy.md) + - [RouteFilterRuleSortCriteria](docs/RouteFilterRuleSortCriteria.md) + - [RouteFilterRuleSortDirection](docs/RouteFilterRuleSortDirection.md) - [RouteFilterRuleState](docs/RouteFilterRuleState.md) - [RouteFilterRulesBase](docs/RouteFilterRulesBase.md) - [RouteFilterRulesChange](docs/RouteFilterRulesChange.md) @@ -641,8 +705,11 @@ Class | Method | HTTP request | Description - [RouteFilterRulesChangeDataResponse](docs/RouteFilterRulesChangeDataResponse.md) - [RouteFilterRulesChangeOperation](docs/RouteFilterRulesChangeOperation.md) - [RouteFilterRulesData](docs/RouteFilterRulesData.md) + - [RouteFilterRulesFilter](docs/RouteFilterRulesFilter.md) - [RouteFilterRulesPatchRequestItem](docs/RouteFilterRulesPatchRequestItem.md) - [RouteFilterRulesPostRequest](docs/RouteFilterRulesPostRequest.md) + - [RouteFilterRulesSearchRequest](docs/RouteFilterRulesSearchRequest.md) + - [RouteFilterRulesSearchResponse](docs/RouteFilterRulesSearchResponse.md) - [RouteFilterState](docs/RouteFilterState.md) - [RouteFiltersBase](docs/RouteFiltersBase.md) - [RouteFiltersChange](docs/RouteFiltersChange.md) @@ -696,7 +763,10 @@ Class | Method | HTTP request | Description - [ServiceProfileAccessPointTypeEnum](docs/ServiceProfileAccessPointTypeEnum.md) - [ServiceProfileAccessPointTypeVD](docs/ServiceProfileAccessPointTypeVD.md) - [ServiceProfileAccessPointVD](docs/ServiceProfileAccessPointVD.md) + - [ServiceProfileActionRequest](docs/ServiceProfileActionRequest.md) + - [ServiceProfileActionResponse](docs/ServiceProfileActionResponse.md) - [ServiceProfileAndFilter](docs/ServiceProfileAndFilter.md) + - [ServiceProfileChange](docs/ServiceProfileChange.md) - [ServiceProfileFilter](docs/ServiceProfileFilter.md) - [ServiceProfileLinkProtocolConfig](docs/ServiceProfileLinkProtocolConfig.md) - [ServiceProfileListResponse](docs/ServiceProfileListResponse.md) @@ -796,6 +866,7 @@ Class | Method | HTTP request | Description - [TimeServiceSortCriteria](docs/TimeServiceSortCriteria.md) - [TimeServiceSortDirection](docs/TimeServiceSortDirection.md) - [TimeServicesSearchRequest](docs/TimeServicesSearchRequest.md) + - [ToolCallInformationInner](docs/ToolCallInformationInner.md) - [ValidateConnectionResponse](docs/ValidateConnectionResponse.md) - [ValidateRequest](docs/ValidateRequest.md) - [ValidateRequestFilter](docs/ValidateRequestFilter.md) diff --git a/services/fabricv4/docs/AccessPoint.md b/services/fabricv4/docs/AccessPoint.md index 69435362..c1270b24 100644 --- a/services/fabricv4/docs/AccessPoint.md +++ b/services/fabricv4/docs/AccessPoint.md @@ -24,7 +24,6 @@ Access point object |**providerConnectionId** | **String** | Provider assigned Connection Id | [optional] | |**virtualNetwork** | [**VirtualNetwork**](VirtualNetwork.md) | | [optional] | |**interconnection** | [**MetalInterconnection**](MetalInterconnection.md) | | [optional] | -|**vpicInterface** | [**VpicInterface**](VpicInterface.md) | | [optional] | |**role** | [**RoleEnum**](#RoleEnum) | E-Tree network connection role | [optional] | diff --git a/services/fabricv4/docs/AccessPointType.md b/services/fabricv4/docs/AccessPointType.md index 31280629..c4bf9297 100644 --- a/services/fabricv4/docs/AccessPointType.md +++ b/services/fabricv4/docs/AccessPointType.md @@ -25,5 +25,7 @@ * `VPIC_INTERFACE` (value: `"VPIC_INTERFACE"`) +* `APP_LINK` (value: `"APP_LINK"`) + diff --git a/services/fabricv4/docs/Agent.md b/services/fabricv4/docs/Agent.md new file mode 100644 index 00000000..b33743be --- /dev/null +++ b/services/fabricv4/docs/Agent.md @@ -0,0 +1,14 @@ + + +# Agent + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **UUID** | Agent Uuid | [optional] | +|**type** | **String** | | [optional] | + + + diff --git a/services/fabricv4/docs/AgentActivities.md b/services/fabricv4/docs/AgentActivities.md new file mode 100644 index 00000000..8e64d1a0 --- /dev/null +++ b/services/fabricv4/docs/AgentActivities.md @@ -0,0 +1,20 @@ + + +# AgentActivities + +Agent Activities object + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **UUID** | Agent Activities URI | [optional] | +|**type** | **String** | type | [optional] | +|**uuid** | **UUID** | Equinix-assigned agent operation identifier | [optional] [readonly] | +|**agent** | [**Agent**](Agent.md) | | [optional] | +|**status** | **String** | Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED | [optional] | +|**metadata** | [**AgentActivitiesMetadata**](AgentActivitiesMetadata.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/AgentActivitiesMetadata.md b/services/fabricv4/docs/AgentActivitiesMetadata.md new file mode 100644 index 00000000..7df6aa65 --- /dev/null +++ b/services/fabricv4/docs/AgentActivitiesMetadata.md @@ -0,0 +1,14 @@ + + +# AgentActivitiesMetadata + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**chatMessage** | [**ChatMessage**](ChatMessage.md) | | [optional] | +|**toolCallInformation** | [**List<ToolCallInformationInner>**](ToolCallInformationInner.md) | List of tools called during the agent operation | [optional] | + + + diff --git a/services/fabricv4/docs/AgentDefinition.md b/services/fabricv4/docs/AgentDefinition.md new file mode 100644 index 00000000..f996478d --- /dev/null +++ b/services/fabricv4/docs/AgentDefinition.md @@ -0,0 +1,13 @@ + + +# AgentDefinition + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**url** | **String** | Agent Template ReadMe (.md) Definition | [optional] | + + + diff --git a/services/fabricv4/docs/AgentGetActivities.md b/services/fabricv4/docs/AgentGetActivities.md new file mode 100644 index 00000000..354c691a --- /dev/null +++ b/services/fabricv4/docs/AgentGetActivities.md @@ -0,0 +1,14 @@ + + +# AgentGetActivities + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<AgentActivities>**](AgentActivities.md) | Data returned from the API call. | [optional] | + + + diff --git a/services/fabricv4/docs/AgentGetAllResponse.md b/services/fabricv4/docs/AgentGetAllResponse.md new file mode 100644 index 00000000..8dc1e6b1 --- /dev/null +++ b/services/fabricv4/docs/AgentGetAllResponse.md @@ -0,0 +1,14 @@ + + +# AgentGetAllResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<Agents>**](Agents.md) | Data returned from the API call. | [optional] | + + + diff --git a/services/fabricv4/docs/AgentPatchRequest.md b/services/fabricv4/docs/AgentPatchRequest.md new file mode 100644 index 00000000..a442a7a5 --- /dev/null +++ b/services/fabricv4/docs/AgentPatchRequest.md @@ -0,0 +1,16 @@ + + +# AgentPatchRequest + +Update Agent + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**path** | **String** | path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt | | +|**op** | **String** | Handy shortcut for operation name | | +|**value** | **Object** | new value for updated parameter | | + + + diff --git a/services/fabricv4/docs/AgentPostRequest.md b/services/fabricv4/docs/AgentPostRequest.md new file mode 100644 index 00000000..0b3dcadd --- /dev/null +++ b/services/fabricv4/docs/AgentPostRequest.md @@ -0,0 +1,20 @@ + + +# AgentPostRequest + +Create Agent + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | | | +|**name** | **String** | Customer-provided agent name | | +|**description** | **String** | Customer-provided agent description | [optional] | +|**enabled** | **Boolean** | Customer-provided agent enabled status | [optional] | +|**project** | [**Project**](Project.md) | | | +|**agentTemplate** | [**AgentTemplate**](AgentTemplate.md) | | | +|**_configuration** | [**ModelConfiguration**](ModelConfiguration.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/AgentTemplate.md b/services/fabricv4/docs/AgentTemplate.md new file mode 100644 index 00000000..3d5d53bf --- /dev/null +++ b/services/fabricv4/docs/AgentTemplate.md @@ -0,0 +1,13 @@ + + +# AgentTemplate + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Agent Template Uuid | [optional] | + + + diff --git a/services/fabricv4/docs/AgentTemplateGetAllResponse.md b/services/fabricv4/docs/AgentTemplateGetAllResponse.md new file mode 100644 index 00000000..448a56da --- /dev/null +++ b/services/fabricv4/docs/AgentTemplateGetAllResponse.md @@ -0,0 +1,14 @@ + + +# AgentTemplateGetAllResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<AgentTemplates>**](AgentTemplates.md) | Data returned from the API call. | [optional] | + + + diff --git a/services/fabricv4/docs/AgentTemplates.md b/services/fabricv4/docs/AgentTemplates.md new file mode 100644 index 00000000..41550d4e --- /dev/null +++ b/services/fabricv4/docs/AgentTemplates.md @@ -0,0 +1,35 @@ + + +# AgentTemplates + +Agent Template object + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **UUID** | Agent Template URI | [optional] | +|**type** | **String** | type | [optional] | +|**uuid** | **UUID** | Equinix-assigned access point identifier | [optional] | +|**name** | **String** | Equinix-provided agent template name | [optional] | +|**description** | **String** | Equinix-provided agent template description | [optional] | +|**state** | [**StateEnum**](#StateEnum) | Agent state | [optional] | +|**enabled** | **Boolean** | Equinix-provided agent template enabled status | [optional] | +|**agentDefinition** | [**AgentDefinition**](AgentDefinition.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: StateEnum + +| Name | Value | +|---- | -----| +| PROVISIONING | "PROVISIONING" | +| PROVISIONED | "PROVISIONED" | +| REPROVISIONING | "REPROVISIONING" | +| DEPROVISIONING | "DEPROVISIONING" | +| DEPROVISIONED | "DEPROVISIONED" | +| FAILED | "FAILED" | + + + diff --git a/services/fabricv4/docs/AgentTemplatesApi.md b/services/fabricv4/docs/AgentTemplatesApi.md new file mode 100644 index 00000000..f7b0c25d --- /dev/null +++ b/services/fabricv4/docs/AgentTemplatesApi.md @@ -0,0 +1,158 @@ +# AgentTemplatesApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**getAgentTemplateByUuid**](AgentTemplatesApi.md#getAgentTemplateByUuid) | **GET** /fabric/v4/agentTemplates/{agentTemplateId} | Get Agent Template by UUID | +| [**getAgentTemplates**](AgentTemplatesApi.md#getAgentTemplates) | **GET** /fabric/v4/agentTemplates | Get Agent Templates | + + + +# **getAgentTemplateByUuid** +> AgentTemplates getAgentTemplateByUuid(agentTemplateId, offset, limit) + +Get Agent Template by UUID + +This API provides capability to retrieve an agent template by uuid + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentTemplatesApi; + +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"); + + AgentTemplatesApi apiInstance = new AgentTemplatesApi(defaultClient); + UUID agentTemplateId = UUID.randomUUID(); // UUID | Agent Template UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + AgentTemplates result = apiInstance.getAgentTemplateByUuid(agentTemplateId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentTemplatesApi#getAgentTemplateByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentTemplateId** | **UUID**| Agent Template UUID | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**AgentTemplates**](AgentTemplates.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** | Agent object | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + + +# **getAgentTemplates** +> AgentTemplateGetAllResponse getAgentTemplates(offset, limit) + +Get Agent Templates + +This API provides capability to retrieve agent templates + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentTemplatesApi; + +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"); + + AgentTemplatesApi apiInstance = new AgentTemplatesApi(defaultClient); + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + AgentTemplateGetAllResponse result = apiInstance.getAgentTemplates(offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentTemplatesApi#getAgentTemplates"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**AgentTemplateGetAllResponse**](AgentTemplateGetAllResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful operation | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + diff --git a/services/fabricv4/docs/Agents.md b/services/fabricv4/docs/Agents.md new file mode 100644 index 00000000..43c3bd9f --- /dev/null +++ b/services/fabricv4/docs/Agents.md @@ -0,0 +1,37 @@ + + +# Agents + +Agent object + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Agent URI | [optional] [readonly] | +|**type** | **String** | type | [optional] | +|**uuid** | **UUID** | Equinix-assigned access point identifier | [optional] | +|**name** | **String** | Customer-provided agent name | [optional] | +|**description** | **String** | Customer-provided agent description | [optional] | +|**state** | [**StateEnum**](#StateEnum) | Agent state | [optional] | +|**enabled** | **Boolean** | Customer-provided agent enabled status | [optional] | +|**project** | [**Project**](Project.md) | | [optional] | +|**agentTemplate** | [**AgentTemplate**](AgentTemplate.md) | | [optional] | +|**_configuration** | [**ModelConfiguration**](ModelConfiguration.md) | | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + +## Enum: StateEnum + +| Name | Value | +|---- | -----| +| PROVISIONING | "PROVISIONING" | +| PROVISIONED | "PROVISIONED" | +| REPROVISIONING | "REPROVISIONING" | +| DEPROVISIONING | "DEPROVISIONING" | +| DEPROVISIONED | "DEPROVISIONED" | +| FAILED | "FAILED" | + + + diff --git a/services/fabricv4/docs/AgentsApi.md b/services/fabricv4/docs/AgentsApi.md new file mode 100644 index 00000000..96831c1a --- /dev/null +++ b/services/fabricv4/docs/AgentsApi.md @@ -0,0 +1,457 @@ +# AgentsApi + +All URIs are relative to *https://api.equinix.com* + +| Method | HTTP request | Description | +|------------- | ------------- | -------------| +| [**createAgent**](AgentsApi.md#createAgent) | **POST** /fabric/v4/agents | Create Agent | +| [**deleteAgentByUuid**](AgentsApi.md#deleteAgentByUuid) | **DELETE** /fabric/v4/agents/{agentId} | Delete Agent by UUID | +| [**getAgentActivities**](AgentsApi.md#getAgentActivities) | **GET** /fabric/v4/agents/{agentId}/activities | Get Agent Activities | +| [**getAgentByUuid**](AgentsApi.md#getAgentByUuid) | **GET** /fabric/v4/agents/{agentId} | Get Agent by UUID | +| [**getAgents**](AgentsApi.md#getAgents) | **GET** /fabric/v4/agents | Get Agents | +| [**patchAgentByUuid**](AgentsApi.md#patchAgentByUuid) | **PATCH** /fabric/v4/agents/{agentId} | Update Agent by UUID | + + + +# **createAgent** +> Agents createAgent(agentPostRequest) + +Create Agent + +This API provides capability to create user's agent + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + AgentPostRequest agentPostRequest = new AgentPostRequest(); // AgentPostRequest | + try { + Agents result = apiInstance.createAgent(agentPostRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#createAgent"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentPostRequest** | [**AgentPostRequest**](AgentPostRequest.md)| | | + +### Return type + +[**Agents**](Agents.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** | Agent object | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + + +# **deleteAgentByUuid** +> Agents deleteAgentByUuid(agentId, offset, limit) + +Delete Agent by UUID + +This API provides capability to delete an agent by uuid + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + UUID agentId = UUID.randomUUID(); // UUID | Agent UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + Agents result = apiInstance.deleteAgentByUuid(agentId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#deleteAgentByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentId** | **UUID**| Agent UUID | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**Agents**](Agents.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** | Agent object | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + + +# **getAgentActivities** +> AgentGetActivities getAgentActivities(agentId, offset, limit) + +Get Agent Activities + +This API provides capability to retrieve an agent activities + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + UUID agentId = UUID.randomUUID(); // UUID | Agent UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + AgentGetActivities result = apiInstance.getAgentActivities(agentId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#getAgentActivities"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentId** | **UUID**| Agent UUID | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**AgentGetActivities**](AgentGetActivities.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful operation | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + + +# **getAgentByUuid** +> Agents getAgentByUuid(agentId, offset, limit) + +Get Agent by UUID + +This API provides capability to retrieve an agent by uuid + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + UUID agentId = UUID.randomUUID(); // UUID | Agent UUID + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + Agents result = apiInstance.getAgentByUuid(agentId, offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#getAgentByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentId** | **UUID**| Agent UUID | | +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**Agents**](Agents.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** | Agent object | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + + +# **getAgents** +> AgentGetAllResponse getAgents(offset, limit) + +Get Agents + +This API provides capability to retrieve agents + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + Integer offset = 1; // Integer | offset + Integer limit = 10; // Integer | number of records to fetch + try { + AgentGetAllResponse result = apiInstance.getAgents(offset, limit); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#getAgents"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **offset** | **Integer**| offset | [optional] | +| **limit** | **Integer**| number of records to fetch | [optional] | + +### Return type + +[**AgentGetAllResponse**](AgentGetAllResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | Successful operation | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + + +# **patchAgentByUuid** +> Agents patchAgentByUuid(agentId, agentPatchRequest) + +Update Agent by UUID + +This API provides capability to update an agent by uuid + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.AgentsApi; + +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"); + + AgentsApi apiInstance = new AgentsApi(defaultClient); + UUID agentId = UUID.randomUUID(); // UUID | Agent UUID + AgentPatchRequest agentPatchRequest = new AgentPatchRequest(); // AgentPatchRequest | + try { + Agents result = apiInstance.patchAgentByUuid(agentId, agentPatchRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling AgentsApi#patchAgentByUuid"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **agentId** | **UUID**| Agent UUID | | +| **agentPatchRequest** | [**AgentPatchRequest**](AgentPatchRequest.md)| | | + +### Return type + +[**Agents**](Agents.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** | Agent object | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal server error | - | + diff --git a/services/fabricv4/docs/Asset.md b/services/fabricv4/docs/Asset.md index 19c816d3..fa639083 100644 --- a/services/fabricv4/docs/Asset.md +++ b/services/fabricv4/docs/Asset.md @@ -17,5 +17,9 @@ * `PROJECTS` (value: `"projects"`) +* `NETWORKEDGEDEVICES` (value: `"networkEdgeDevices"`) + +* `COMPANYPROFILES` (value: `"companyProfiles"`) + diff --git a/services/fabricv4/docs/ChatMessage.md b/services/fabricv4/docs/ChatMessage.md new file mode 100644 index 00000000..c02bbe9b --- /dev/null +++ b/services/fabricv4/docs/ChatMessage.md @@ -0,0 +1,14 @@ + + +# ChatMessage + +Chat message and tool call information during the agent operation + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**messages** | [**List<MessagesInner>**](MessagesInner.md) | List of chat messages | [optional] | + + + diff --git a/services/fabricv4/docs/CloudEventAssetType.md b/services/fabricv4/docs/CloudEventAssetType.md index ac81d2b7..3938893f 100644 --- a/services/fabricv4/docs/CloudEventAssetType.md +++ b/services/fabricv4/docs/CloudEventAssetType.md @@ -23,5 +23,7 @@ * `TIMESERVICES` (value: `"timeServices"`) +* `COMPANYPROFILES` (value: `"companyProfiles"`) + diff --git a/services/fabricv4/docs/CloudEventsApi.md b/services/fabricv4/docs/CloudEventsApi.md index 3f8079f6..43837593 100644 --- a/services/fabricv4/docs/CloudEventsApi.md +++ b/services/fabricv4/docs/CloudEventsApi.md @@ -132,7 +132,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| -| **asset** | [**CloudEventAssetType**](.md)| asset | [enum: ports, connections, routers, metros, serviceTokens, networks, projects, organizations, timeServices] | +| **asset** | [**CloudEventAssetType**](.md)| asset | [enum: ports, connections, routers, metros, serviceTokens, networks, projects, organizations, timeServices, companyProfiles] | | **assetId** | **UUID**| asset UUID | | | **fromDateTime** | **OffsetDateTime**| Start date and time | [optional] | | **toDateTime** | **OffsetDateTime**| End date and time | [optional] | diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md b/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md new file mode 100644 index 00000000..e277941b --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteAggregationAndExpression + +AND expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md b/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md new file mode 100644 index 00000000..d5e5399d --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md @@ -0,0 +1,27 @@ + + +# CloudRouterRouteAggregationExpression + +Filter expression that can be AND, OR, or a simple expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | +|**or** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | +|**property** | [**PropertyEnum**](#PropertyEnum) | | [optional] | +|**operator** | **String** | | [optional] | +|**values** | **List<String>** | | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| ATTACHMENTSTATUS | "/attachmentStatus" | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md b/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md new file mode 100644 index 00000000..9d5a0140 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteAggregationOrExpression + +OR expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**or** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md b/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md new file mode 100644 index 00000000..aa2fdcb5 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md @@ -0,0 +1,24 @@ + + +# CloudRouterRouteAggregationSimpleExpression + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | [**PropertyEnum**](#PropertyEnum) | | [optional] | +|**operator** | **String** | | [optional] | +|**values** | **List<String>** | | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| ATTACHMENTSTATUS | "/attachmentStatus" | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md b/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md new file mode 100644 index 00000000..3c2f576b --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md @@ -0,0 +1,15 @@ + + +# CloudRouterRouteAggregationsFilter + +Top-level filter that can be either an AND expression or OR expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | +|**or** | [**List<CloudRouterRouteAggregationExpression>**](CloudRouterRouteAggregationExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md b/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md new file mode 100644 index 00000000..5719e926 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md @@ -0,0 +1,15 @@ + + +# CloudRouterRouteAggregationsSearchBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filter** | [**CloudRouterRouteAggregationsFilter**](CloudRouterRouteAggregationsFilter.md) | | [optional] | +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**sort** | [**List<RaAttachmentSortItem>**](RaAttachmentSortItem.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md b/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md new file mode 100644 index 00000000..f882053f --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteAggregationsSearchResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<ConnectionRouteAggregationData>**](ConnectionRouteAggregationData.md) | List of route aggregation attachments for a given cloud router | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md b/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md new file mode 100644 index 00000000..e581022c --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteFilterAndExpression + +AND expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFilterExpression.md b/services/fabricv4/docs/CloudRouterRouteFilterExpression.md new file mode 100644 index 00000000..465f9240 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFilterExpression.md @@ -0,0 +1,28 @@ + + +# CloudRouterRouteFilterExpression + +Filter expression that can be AND, OR, or a simple expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | +|**or** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | +|**property** | [**PropertyEnum**](#PropertyEnum) | | [optional] | +|**operator** | **String** | | [optional] | +|**values** | **List<String>** | | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| DIRECTION | "/direction" | +| ATTACHMENTSTATUS | "/attachmentStatus" | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md b/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md new file mode 100644 index 00000000..4d5d7271 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteFilterOrExpression + +OR expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**or** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md b/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md new file mode 100644 index 00000000..4eed6777 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md @@ -0,0 +1,25 @@ + + +# CloudRouterRouteFilterSimpleExpression + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | [**PropertyEnum**](#PropertyEnum) | | [optional] | +|**operator** | **String** | | [optional] | +|**values** | **List<String>** | | [optional] | + + + +## Enum: PropertyEnum + +| Name | Value | +|---- | -----| +| TYPE | "/type" | +| DIRECTION | "/direction" | +| ATTACHMENTSTATUS | "/attachmentStatus" | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md b/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md new file mode 100644 index 00000000..41d90901 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md @@ -0,0 +1,15 @@ + + +# CloudRouterRouteFiltersFilter + +Top-level filter that can be either an AND expression or OR expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | +|**or** | [**List<CloudRouterRouteFilterExpression>**](CloudRouterRouteFilterExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md b/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md new file mode 100644 index 00000000..14f27e5e --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md @@ -0,0 +1,15 @@ + + +# CloudRouterRouteFiltersSearchBase + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filter** | [**CloudRouterRouteFiltersFilter**](CloudRouterRouteFiltersFilter.md) | | [optional] | +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**sort** | [**List<RfAttachmentSortItem>**](RfAttachmentSortItem.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md b/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md new file mode 100644 index 00000000..ff2ca229 --- /dev/null +++ b/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md @@ -0,0 +1,14 @@ + + +# CloudRouterRouteFiltersSearchResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<ConnectionRouteFilterData>**](ConnectionRouteFilterData.md) | List of route filter attachments for a given cloud router | [optional] | + + + diff --git a/services/fabricv4/docs/CloudRoutersApi.md b/services/fabricv4/docs/CloudRoutersApi.md index cdd797c1..bc505690 100644 --- a/services/fabricv4/docs/CloudRoutersApi.md +++ b/services/fabricv4/docs/CloudRoutersApi.md @@ -468,11 +468,11 @@ public class Example { # **getCloudRouterActions** -> CloudRouterActionResponse getCloudRouterActions(routerId, state) +> CloudRouterActionsSearchResponse getCloudRouterActions(routerId, state) Get Route Table Actions -This API provides capability to fetch action status +This API provides capability to fetch all actions for a given cloud router ### Example ```java @@ -497,7 +497,7 @@ public class Example { UUID routerId = UUID.randomUUID(); // UUID | Router UUID CloudRouterActionState state = CloudRouterActionState.fromValue("SUCCEEDED"); // CloudRouterActionState | Action state try { - CloudRouterActionResponse result = apiInstance.getCloudRouterActions(routerId, state); + CloudRouterActionsSearchResponse result = apiInstance.getCloudRouterActions(routerId, state); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling CloudRoutersApi#getCloudRouterActions"); @@ -519,7 +519,7 @@ public class Example { ### Return type -[**CloudRouterActionResponse**](CloudRouterActionResponse.md) +[**CloudRouterActionsSearchResponse**](CloudRouterActionsSearchResponse.md) ### Authorization @@ -1283,7 +1283,7 @@ public class Example { Search Route Table Actions -This API provides capability to refresh route table and bgp session summary information +This API provides capability to search route table actions for a given cloud router ### Example ```java diff --git a/services/fabricv4/docs/CompanyProfileResponse.md b/services/fabricv4/docs/CompanyProfileResponse.md index 87ba79db..17d1f93f 100644 --- a/services/fabricv4/docs/CompanyProfileResponse.md +++ b/services/fabricv4/docs/CompanyProfileResponse.md @@ -14,6 +14,7 @@ |**summary** | **String** | | [optional] | |**description** | **String** | | [optional] | |**state** | **Object** | | [optional] | +|**account** | [**CompanyProfileResponseAccount**](CompanyProfileResponseAccount.md) | | [optional] | |**metros** | [**List<CompanyMetro>**](CompanyMetro.md) | | [optional] | |**logo** | [**CompanyLogo**](CompanyLogo.md) | | [optional] | |**tags** | [**List<TagResponse>**](TagResponse.md) | | [optional] | diff --git a/services/fabricv4/docs/CompanyProfileResponseAccount.md b/services/fabricv4/docs/CompanyProfileResponseAccount.md new file mode 100644 index 00000000..cd74b1ba --- /dev/null +++ b/services/fabricv4/docs/CompanyProfileResponseAccount.md @@ -0,0 +1,13 @@ + + +# CompanyProfileResponseAccount + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**rootOrgId** | **String** | | [optional] | + + + diff --git a/services/fabricv4/docs/Connection.md b/services/fabricv4/docs/Connection.md index aaec8ced..99ac0d29 100644 --- a/services/fabricv4/docs/Connection.md +++ b/services/fabricv4/docs/Connection.md @@ -13,7 +13,6 @@ Connection specification |**uuid** | **String** | Equinix-assigned connection identifier | [optional] | |**name** | **String** | Customer-provided connection name | | |**description** | **String** | Customer-provided connection description | [optional] | -|**state** | **ConnectionState** | | [optional] | |**change** | [**Change**](Change.md) | | [optional] | |**operation** | [**ConnectionOperation**](ConnectionOperation.md) | | [optional] | |**order** | [**Order**](Order.md) | | [optional] | diff --git a/services/fabricv4/docs/ConnectionSide.md b/services/fabricv4/docs/ConnectionSide.md index 155fdeb5..74f3c97e 100644 --- a/services/fabricv4/docs/ConnectionSide.md +++ b/services/fabricv4/docs/ConnectionSide.md @@ -10,9 +10,6 @@ Connection configuration object for each side of multi-segment connection |------------ | ------------- | ------------- | -------------| |**serviceToken** | [**ServiceToken**](ServiceToken.md) | | [optional] | |**accessPoint** | [**AccessPoint**](AccessPoint.md) | | [optional] | -|**internetAccess** | [**InternetAccess**](InternetAccess.md) | | [optional] | -|**companyProfile** | [**ConnectionCompanyProfile**](ConnectionCompanyProfile.md) | | [optional] | -|**invitation** | [**ConnectionInvitation**](ConnectionInvitation.md) | | [optional] | |**additionalInfo** | [**List<ConnectionSideAdditionalInfo>**](ConnectionSideAdditionalInfo.md) | Any additional information, which is not part of connection metadata or configuration | [optional] | diff --git a/services/fabricv4/docs/ConnectionState.md b/services/fabricv4/docs/ConnectionState.md index b537f75f..ebef3ccd 100644 --- a/services/fabricv4/docs/ConnectionState.md +++ b/services/fabricv4/docs/ConnectionState.md @@ -19,12 +19,8 @@ * `PENDING` (value: `"PENDING"`) -* `PROVISIONED` (value: `"PROVISIONED"`) - * `PROVISIONING` (value: `"PROVISIONING"`) -* `REPROVISIONING` (value: `"REPROVISIONING"`) - * `EMPTY` (value: `""`) diff --git a/services/fabricv4/docs/ConnectionType.md b/services/fabricv4/docs/ConnectionType.md index 84af7a8c..19febcaf 100644 --- a/services/fabricv4/docs/ConnectionType.md +++ b/services/fabricv4/docs/ConnectionType.md @@ -31,9 +31,7 @@ * `MC_VC` (value: `"MC_VC"`) -* `IX_PUBLIC_VC` (value: `"IX_PUBLIC_VC"`) - -* `IX_PRIVATE_VC` (value: `"IX_PRIVATE_VC"`) +* `IX_VC` (value: `"IX_VC"`) diff --git a/services/fabricv4/docs/EquinixStatus.md b/services/fabricv4/docs/EquinixStatus.md index 8dcfdbfa..05111212 100644 --- a/services/fabricv4/docs/EquinixStatus.md +++ b/services/fabricv4/docs/EquinixStatus.md @@ -13,22 +13,6 @@ * `PROVISIONED` (value: `"PROVISIONED"`) -* `BEING_REPROVISIONED` (value: `"BEING_REPROVISIONED"`) - -* `BEING_DEPROVISIONED` (value: `"BEING_DEPROVISIONED"`) - -* `BEING_PROVISIONED` (value: `"BEING_PROVISIONED"`) - -* `CREATED` (value: `"CREATED"`) - -* `ERRORED` (value: `"ERRORED"`) - -* `PENDING_DEPROVISIONING` (value: `"PENDING_DEPROVISIONING"`) - -* `APPROVED` (value: `"APPROVED"`) - -* `ORDERING` (value: `"ORDERING"`) - * `PENDING_APPROVAL` (value: `"PENDING_APPROVAL"`) * `NOT_PROVISIONED` (value: `"NOT_PROVISIONED"`) @@ -49,16 +33,8 @@ * `DELETED` (value: `"DELETED"`) -* `PENDING_BANDWIDTH_APPROVAL` (value: `"PENDING_BANDWIDTH_APPROVAL"`) - * `AUTO_APPROVAL_FAILED` (value: `"AUTO_APPROVAL_FAILED"`) -* `UPDATE_PENDING` (value: `"UPDATE_PENDING"`) - -* `DELETED_API` (value: `"DELETED_API"`) - -* `MODIFIED` (value: `"MODIFIED"`) - * `PENDING_PROVIDER_VLAN_ERROR` (value: `"PENDING_PROVIDER_VLAN_ERROR"`) * `DRAFT` (value: `"DRAFT"`) @@ -67,7 +43,5 @@ * `PENDING_INTERFACE_CONFIGURATION` (value: `"PENDING_INTERFACE_CONFIGURATION"`) -* `PENDING_ACTIVATION` (value: `"PENDING_ACTIVATION"`) - diff --git a/services/fabricv4/docs/Expression.md b/services/fabricv4/docs/Expression.md index 17304b34..880c3840 100644 --- a/services/fabricv4/docs/Expression.md +++ b/services/fabricv4/docs/Expression.md @@ -22,10 +22,15 @@ | EQUAL | "=" | | NOT_EQUAL | "!=" | | GREATER_THAN | ">" | +| GREATER_THAN_OR_EQUAL_TO | ">=" | | LESS_THAN | "<" | +| LESS_THAN_OR_EQUAL_TO | "<=" | | LIKE | "LIKE" | +| ILKE | "ILKE" | | IS_NOT_NULL | "IS NOT NULL" | | IS_NULL | "IS NULL" | +| IN | "IN" | +| BETWEEN | "BETWEEN" | diff --git a/services/fabricv4/docs/MessagesInner.md b/services/fabricv4/docs/MessagesInner.md new file mode 100644 index 00000000..bb3d1064 --- /dev/null +++ b/services/fabricv4/docs/MessagesInner.md @@ -0,0 +1,14 @@ + + +# MessagesInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Role of the message sender user or assistant | [optional] | +|**content** | **String** | Content of the chat message | [optional] | + + + diff --git a/services/fabricv4/docs/ModelConfiguration.md b/services/fabricv4/docs/ModelConfiguration.md new file mode 100644 index 00000000..c6e572b0 --- /dev/null +++ b/services/fabricv4/docs/ModelConfiguration.md @@ -0,0 +1,13 @@ + + +# ModelConfiguration + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**prompt** | **String** | Agent configuration prompt to be used for agent specification | [optional] | + + + diff --git a/services/fabricv4/docs/Order.md b/services/fabricv4/docs/Order.md index 119ca082..09d25fee 100644 --- a/services/fabricv4/docs/Order.md +++ b/services/fabricv4/docs/Order.md @@ -13,6 +13,7 @@ |**orderId** | **String** | Order Identification | [optional] | |**orderNumber** | **String** | Order Reference Number | [optional] | |**termLength** | **Integer** | Term length in months, valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case). | [optional] | +|**contractedBandwidth** | **Integer** | Contracted bandwidth | [optional] | diff --git a/services/fabricv4/docs/PortRequest.md b/services/fabricv4/docs/PortRequest.md index 2bc45ca5..8b1819e2 100644 --- a/services/fabricv4/docs/PortRequest.md +++ b/services/fabricv4/docs/PortRequest.md @@ -39,10 +39,8 @@ 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] | -|**marketplaceSubscription** | [**MarketplaceSubscription**](MarketplaceSubscription.md) | | [optional] | diff --git a/services/fabricv4/docs/PortSortBy.md b/services/fabricv4/docs/PortSortBy.md index f2f854e1..5e2003b5 100644 --- a/services/fabricv4/docs/PortSortBy.md +++ b/services/fabricv4/docs/PortSortBy.md @@ -5,7 +5,27 @@ ## Enum -* `_DEVICE_NAME` (value: `"/device/name"`) +* `DEVICE_NAME` (value: `"/device/name"`) + +* `NAME` (value: `"/name"`) + +* `STATE` (value: `"/state"`) + +* `LOCATION_METRONAME` (value: `"/location/metroName"`) + +* `DEMARCATIONPOINTIBX` (value: `"/demarcationPointIbx"`) + +* `DEVICE_REDUNDANCY_PRIORITY` (value: `"/device/redundancy/priority"`) + +* `LAGENABLED` (value: `"/lagEnabled"`) + +* `PHYSICALPORTSSPEED` (value: `"/physicalPortsSpeed"`) + +* `ENCAPSULATION_TYPE` (value: `"/encapsulation/type"`) + +* `PHYSICALPORTS_TETHER_CROSSCONNECTID` (value: `"/physicalPorts/tether/crossConnectId"`) + +* `PACKAGE_CODE` (value: `"/package/code"`) diff --git a/services/fabricv4/docs/PortsApi.md b/services/fabricv4/docs/PortsApi.md index bbc84921..a2319bec 100644 --- a/services/fabricv4/docs/PortsApi.md +++ b/services/fabricv4/docs/PortsApi.md @@ -155,7 +155,7 @@ public class Example { | Status code | Description | Response headers | |-------------|-------------|------------------| | **200** | Successful operation | - | -| **201** | Successful operation | - | +| **202** | Successful operation | - | | **400** | Bad request | - | | **401** | Unauthorized | - | | **500** | Internal Server Error | - | diff --git a/services/fabricv4/docs/ProductType.md b/services/fabricv4/docs/ProductType.md index af47becf..c57062f6 100644 --- a/services/fabricv4/docs/ProductType.md +++ b/services/fabricv4/docs/ProductType.md @@ -15,5 +15,7 @@ * `PRECISION_TIME_PRODUCT` (value: `"PRECISION_TIME_PRODUCT"`) +* `METRO_CONNECT_PRODUCT` (value: `"METRO_CONNECT_PRODUCT"`) + diff --git a/services/fabricv4/docs/ProviderStatus.md b/services/fabricv4/docs/ProviderStatus.md index bacce961..f5d14c4d 100644 --- a/services/fabricv4/docs/ProviderStatus.md +++ b/services/fabricv4/docs/ProviderStatus.md @@ -27,18 +27,8 @@ * `PENDING_BGP` (value: `"PENDING_BGP"`) -* `OUT_OF_BANDWIDTH` (value: `"OUT_OF_BANDWIDTH"`) - -* `DELETED` (value: `"DELETED"`) - * `ERROR` (value: `"ERROR"`) -* `ERRORED` (value: `"ERRORED"`) - -* `NOTPROVISIONED` (value: `"NOTPROVISIONED"`) - -* `NOT_PROVISIONED` (value: `"NOT_PROVISIONED"`) - * `ORDERING` (value: `"ORDERING"`) * `DELETING` (value: `"DELETING"`) diff --git a/services/fabricv4/docs/RaAttachmentSortItem.md b/services/fabricv4/docs/RaAttachmentSortItem.md new file mode 100644 index 00000000..abe3a356 --- /dev/null +++ b/services/fabricv4/docs/RaAttachmentSortItem.md @@ -0,0 +1,35 @@ + + +# RaAttachmentSortItem + + +## 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" | +| ATTACHMENTSTATUS | "/attachmentStatus" | +| CHANGELOG_CREATEDDATETIME | "/changeLog/createdDateTime" | +| CHANGELOG_UPDATEDDATETIME | "/changeLog/updatedDateTime" | + + + +## Enum: DirectionEnum + +| Name | Value | +|---- | -----| +| DESC | "DESC" | +| ASC | "ASC" | + + + diff --git a/services/fabricv4/docs/RfAttachmentSortItem.md b/services/fabricv4/docs/RfAttachmentSortItem.md new file mode 100644 index 00000000..9ea934ae --- /dev/null +++ b/services/fabricv4/docs/RfAttachmentSortItem.md @@ -0,0 +1,36 @@ + + +# RfAttachmentSortItem + + +## 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" | +| DIRECTION | "/direction" | +| ATTACHMENTSTATUS | "/attachmentStatus" | +| CHANGELOG_CREATEDDATETIME | "/changeLog/createdDateTime" | +| CHANGELOG_UPDATEDDATETIME | "/changeLog/updatedDateTime" | + + + +## Enum: DirectionEnum + +| Name | Value | +|---- | -----| +| DESC | "DESC" | +| ASC | "ASC" | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleAndExpression.md b/services/fabricv4/docs/RouteAggregationRuleAndExpression.md new file mode 100644 index 00000000..72dd6be2 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleAndExpression.md @@ -0,0 +1,14 @@ + + +# RouteAggregationRuleAndExpression + +AND expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleExpression.md b/services/fabricv4/docs/RouteAggregationRuleExpression.md new file mode 100644 index 00000000..e1b975cb --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleExpression.md @@ -0,0 +1,18 @@ + + +# RouteAggregationRuleExpression + +Filter expression that can be AND, OR, or a simple expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | +|**or** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | +|**property** | **String** | Possible field names to use on filters: * `/type` - Route Aggregation Rules Type * `/name` - Route Aggregation Rules Name * `/uuid` - Route Aggregation Rules uuid * `/state` - Route Aggregation Rules status * `/prefix` - Route Aggregation Rule Prefix | [optional] | +|**operator** | **String** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional] | +|**values** | **List<String>** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleOrExpression.md b/services/fabricv4/docs/RouteAggregationRuleOrExpression.md new file mode 100644 index 00000000..19238d91 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleOrExpression.md @@ -0,0 +1,14 @@ + + +# RouteAggregationRuleOrExpression + +OR expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**or** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md b/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md new file mode 100644 index 00000000..01525c34 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md @@ -0,0 +1,16 @@ + + +# RouteAggregationRuleSimpleExpression + +Simple filter expression with property, operator, and values + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | **String** | Possible field names to use on filters: * `/type` - Route Aggregation Rules Type * `/name` - Route Aggregation Rules Name * `/uuid` - Route Aggregation Rules uuid * `/state` - Route Aggregation Rules status * `/prefix` - Route Aggregation Rule Prefix | [optional] | +|**operator** | **String** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional] | +|**values** | **List<String>** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleSortBy.md b/services/fabricv4/docs/RouteAggregationRuleSortBy.md new file mode 100644 index 00000000..34068492 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleSortBy.md @@ -0,0 +1,23 @@ + + +# RouteAggregationRuleSortBy + +## Enum + + +* `TYPE` (value: `"/type"`) + +* `UUID` (value: `"/uuid"`) + +* `NAME` (value: `"/name"`) + +* `STATE` (value: `"/state"`) + +* `PREFIX` (value: `"/prefix"`) + +* `CHANGELOG_CREATEDDATETIME` (value: `"/changeLog/createdDateTime"`) + +* `CHANGELOG_UPDATEDDATETIME` (value: `"/changeLog/updatedDateTime"`) + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md b/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md new file mode 100644 index 00000000..ae962970 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md @@ -0,0 +1,14 @@ + + +# RouteAggregationRuleSortCriteria + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**direction** | **RouteAggregationRuleSortDirection** | | [optional] | +|**property** | **RouteAggregationRuleSortBy** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRuleSortDirection.md b/services/fabricv4/docs/RouteAggregationRuleSortDirection.md new file mode 100644 index 00000000..6baa3e84 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRuleSortDirection.md @@ -0,0 +1,13 @@ + + +# RouteAggregationRuleSortDirection + +## Enum + + +* `DESC` (value: `"DESC"`) + +* `ASC` (value: `"ASC"`) + + + diff --git a/services/fabricv4/docs/RouteAggregationRulesApi.md b/services/fabricv4/docs/RouteAggregationRulesApi.md index 0cf36558..8a805d1a 100644 --- a/services/fabricv4/docs/RouteAggregationRulesApi.md +++ b/services/fabricv4/docs/RouteAggregationRulesApi.md @@ -13,6 +13,7 @@ All URIs are relative to *https://api.equinix.com* | [**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 | +| [**searchRouteAggregationRules**](RouteAggregationRulesApi.md#searchRouteAggregationRules) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search | Search Route Aggregation Rules | @@ -699,3 +700,78 @@ public class Example { | **415** | Unsupported Media Type | - | | **500** | Internal server error | - | + +# **searchRouteAggregationRules** +> RouteAggregationRulesSearchResponse searchRouteAggregationRules(routeAggregationId, routeAggregationRulesSearchRequest) + +Search Route Aggregation Rules + +This API provides capability to search Route Aggregation Rules + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.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 + RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest = new RouteAggregationRulesSearchRequest(); // RouteAggregationRulesSearchRequest | + try { + RouteAggregationRulesSearchResponse result = apiInstance.searchRouteAggregationRules(routeAggregationId, routeAggregationRulesSearchRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationRulesApi#searchRouteAggregationRules"); + 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 | | +| **routeAggregationRulesSearchRequest** | [**RouteAggregationRulesSearchRequest**](RouteAggregationRulesSearchRequest.md)| | | + +### Return type + +[**RouteAggregationRulesSearchResponse**](RouteAggregationRulesSearchResponse.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 Rule ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/services/fabricv4/docs/RouteAggregationRulesFilter.md b/services/fabricv4/docs/RouteAggregationRulesFilter.md new file mode 100644 index 00000000..972cc708 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRulesFilter.md @@ -0,0 +1,15 @@ + + +# RouteAggregationRulesFilter + +Top-level filter that can be either an AND expression or OR expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | +|**or** | [**List<RouteAggregationRuleExpression>**](RouteAggregationRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md b/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md new file mode 100644 index 00000000..faf76596 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md @@ -0,0 +1,16 @@ + + +# RouteAggregationRulesSearchRequest + +Search route aggregation rules + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filter** | [**RouteAggregationRulesFilter**](RouteAggregationRulesFilter.md) | | [optional] | +|**pagination** | [**PaginationRequest**](PaginationRequest.md) | | [optional] | +|**sort** | [**List<RouteAggregationRuleSortCriteria>**](RouteAggregationRuleSortCriteria.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md b/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md new file mode 100644 index 00000000..7910dc42 --- /dev/null +++ b/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md @@ -0,0 +1,14 @@ + + +# RouteAggregationRulesSearchResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteAggregationRulesData>**](RouteAggregationRulesData.md) | List of route aggregation rules | [optional] | + + + diff --git a/services/fabricv4/docs/RouteAggregationsApi.md b/services/fabricv4/docs/RouteAggregationsApi.md index 540aad0c..b151eb54 100644 --- a/services/fabricv4/docs/RouteAggregationsApi.md +++ b/services/fabricv4/docs/RouteAggregationsApi.md @@ -15,6 +15,7 @@ All URIs are relative to *https://api.equinix.com* | [**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 | +| [**searchCloudRouterRouteAggregationAttachments**](RouteAggregationsApi.md#searchCloudRouterRouteAggregationAttachments) | **POST** /fabric/v4/routers/{routerId}/routeAggregations/search | Search Cloud Router Route Aggregation Attachments | | [**searchRouteAggregations**](RouteAggregationsApi.md#searchRouteAggregations) | **POST** /fabric/v4/routeAggregations/search | Search Aggregations | @@ -833,6 +834,81 @@ public class Example { | **415** | Unsupported Media Type | - | | **500** | Internal server error | - | + +# **searchCloudRouterRouteAggregationAttachments** +> CloudRouterRouteAggregationsSearchResponse searchCloudRouterRouteAggregationAttachments(routerId, cloudRouterRouteAggregationsSearchBase) + +Search Cloud Router Route Aggregation Attachments + +This API provides capability to search route aggregation attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.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); + UUID routerId = UUID.randomUUID(); // UUID | Cloud Router UUID + CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase = new CloudRouterRouteAggregationsSearchBase(); // CloudRouterRouteAggregationsSearchBase | + try { + CloudRouterRouteAggregationsSearchResponse result = apiInstance.searchCloudRouterRouteAggregationAttachments(routerId, cloudRouterRouteAggregationsSearchBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteAggregationsApi#searchCloudRouterRouteAggregationAttachments"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routerId** | **UUID**| Cloud Router UUID | | +| **cloudRouterRouteAggregationsSearchBase** | [**CloudRouterRouteAggregationsSearchBase**](CloudRouterRouteAggregationsSearchBase.md)| | | + +### Return type + +[**CloudRouterRouteAggregationsSearchResponse**](CloudRouterRouteAggregationsSearchResponse.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 | - | + # **searchRouteAggregations** > RouteAggregationsSearchResponse searchRouteAggregations(routeAggregationsSearchBase) diff --git a/services/fabricv4/docs/RouteFilterRuleAndExpression.md b/services/fabricv4/docs/RouteFilterRuleAndExpression.md new file mode 100644 index 00000000..938f1f15 --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleAndExpression.md @@ -0,0 +1,14 @@ + + +# RouteFilterRuleAndExpression + +AND expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRuleExpression.md b/services/fabricv4/docs/RouteFilterRuleExpression.md new file mode 100644 index 00000000..e1ad7222 --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleExpression.md @@ -0,0 +1,18 @@ + + +# RouteFilterRuleExpression + +Filter expression that can be AND, OR, or a simple expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | +|**or** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | +|**property** | **String** | Possible field names to use on filters: * `/type` - Route Filter Rules Type * `/name` - Route Filter Rules Name * `/uuid` - Route Filter Rules uuid * `/state` - Route Filter Rules status * `/prefix` - Route Filter Rule Prefix * `/prefixMatch` - Route Filter Rule Prefix Match | [optional] | +|**operator** | **String** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional] | +|**values** | **List<String>** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRuleOrExpression.md b/services/fabricv4/docs/RouteFilterRuleOrExpression.md new file mode 100644 index 00000000..0efab61c --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleOrExpression.md @@ -0,0 +1,14 @@ + + +# RouteFilterRuleOrExpression + +OR expression containing multiple filter expressions + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**or** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md b/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md new file mode 100644 index 00000000..d69519d3 --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md @@ -0,0 +1,16 @@ + + +# RouteFilterRuleSimpleExpression + +Simple filter expression with property, operator, and values + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**property** | **String** | Possible field names to use on filters: * `/type` - Route Filter Rules Type * `/name` - Route Filter Rules Name * `/uuid` - Route Filter Rules uuid * `/state` - Route Filter Rules status * `/prefix` - Route Filter Rule Prefix * `/prefixMatch` - Route Filter Rule Prefix Match | [optional] | +|**operator** | **String** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional] | +|**values** | **List<String>** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRuleSortBy.md b/services/fabricv4/docs/RouteFilterRuleSortBy.md new file mode 100644 index 00000000..1bd1ad2e --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleSortBy.md @@ -0,0 +1,25 @@ + + +# RouteFilterRuleSortBy + +## Enum + + +* `TYPE` (value: `"/type"`) + +* `UUID` (value: `"/uuid"`) + +* `NAME` (value: `"/name"`) + +* `STATE` (value: `"/state"`) + +* `PREFIX` (value: `"/prefix"`) + +* `PREFIXMATCH` (value: `"/prefixMatch"`) + +* `CHANGELOG_CREATEDDATETIME` (value: `"/changeLog/createdDateTime"`) + +* `CHANGELOG_UPDATEDDATETIME` (value: `"/changeLog/updatedDateTime"`) + + + diff --git a/services/fabricv4/docs/RouteFilterRuleSortCriteria.md b/services/fabricv4/docs/RouteFilterRuleSortCriteria.md new file mode 100644 index 00000000..135e5640 --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleSortCriteria.md @@ -0,0 +1,14 @@ + + +# RouteFilterRuleSortCriteria + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**direction** | **RouteFilterRuleSortDirection** | | [optional] | +|**property** | **RouteFilterRuleSortBy** | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRuleSortDirection.md b/services/fabricv4/docs/RouteFilterRuleSortDirection.md new file mode 100644 index 00000000..7798558f --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRuleSortDirection.md @@ -0,0 +1,13 @@ + + +# RouteFilterRuleSortDirection + +## Enum + + +* `DESC` (value: `"DESC"`) + +* `ASC` (value: `"ASC"`) + + + diff --git a/services/fabricv4/docs/RouteFilterRulesApi.md b/services/fabricv4/docs/RouteFilterRulesApi.md index 4971645e..8066595a 100644 --- a/services/fabricv4/docs/RouteFilterRulesApi.md +++ b/services/fabricv4/docs/RouteFilterRulesApi.md @@ -13,6 +13,7 @@ All URIs are relative to *https://api.equinix.com* | [**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 | +| [**searchRouteFilterRules**](RouteFilterRulesApi.md#searchRouteFilterRules) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search | Search Route Filter Rules | @@ -699,3 +700,78 @@ public class Example { | **415** | Unsupported Media Type | - | | **500** | Internal server error | - | + +# **searchRouteFilterRules** +> RouteFilterRulesSearchResponse searchRouteFilterRules(routeFilterId, routeFilterRulesSearchRequest) + +Search Route Filter Rules + +This API provides capability to search Route Filter Rules + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.RouteFilterRulesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFilterRulesApi apiInstance = new RouteFilterRulesApi(defaultClient); + String routeFilterId = "routeFilterId_example"; // String | Route Filters Id + RouteFilterRulesSearchRequest routeFilterRulesSearchRequest = new RouteFilterRulesSearchRequest(); // RouteFilterRulesSearchRequest | + try { + RouteFilterRulesSearchResponse result = apiInstance.searchRouteFilterRules(routeFilterId, routeFilterRulesSearchRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFilterRulesApi#searchRouteFilterRules"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **routeFilterId** | **String**| Route Filters Id | | +| **routeFilterRulesSearchRequest** | [**RouteFilterRulesSearchRequest**](RouteFilterRulesSearchRequest.md)| | | + +### Return type + +[**RouteFilterRulesSearchResponse**](RouteFilterRulesSearchResponse.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 Filter Rule ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + diff --git a/services/fabricv4/docs/RouteFilterRulesFilter.md b/services/fabricv4/docs/RouteFilterRulesFilter.md new file mode 100644 index 00000000..26c5ae00 --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRulesFilter.md @@ -0,0 +1,15 @@ + + +# RouteFilterRulesFilter + +Top-level filter that can be either an AND expression or OR expression + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**and** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | +|**or** | [**List<RouteFilterRuleExpression>**](RouteFilterRuleExpression.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRulesSearchRequest.md b/services/fabricv4/docs/RouteFilterRulesSearchRequest.md new file mode 100644 index 00000000..6f82610e --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRulesSearchRequest.md @@ -0,0 +1,16 @@ + + +# RouteFilterRulesSearchRequest + +Search route filter rules + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**filter** | [**RouteFilterRulesFilter**](RouteFilterRulesFilter.md) | | [optional] | +|**pagination** | [**PaginationRequest**](PaginationRequest.md) | | [optional] | +|**sort** | [**List<RouteFilterRuleSortCriteria>**](RouteFilterRuleSortCriteria.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFilterRulesSearchResponse.md b/services/fabricv4/docs/RouteFilterRulesSearchResponse.md new file mode 100644 index 00000000..1d8cf71f --- /dev/null +++ b/services/fabricv4/docs/RouteFilterRulesSearchResponse.md @@ -0,0 +1,14 @@ + + +# RouteFilterRulesSearchResponse + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**pagination** | [**Pagination**](Pagination.md) | | [optional] | +|**data** | [**List<RouteFilterRulesData>**](RouteFilterRulesData.md) | List of route filter rules | [optional] | + + + diff --git a/services/fabricv4/docs/RouteFiltersApi.md b/services/fabricv4/docs/RouteFiltersApi.md index a863ced9..f53ab9be 100644 --- a/services/fabricv4/docs/RouteFiltersApi.md +++ b/services/fabricv4/docs/RouteFiltersApi.md @@ -15,6 +15,7 @@ All URIs are relative to *https://api.equinix.com* | [**getRouteFilterChanges**](RouteFiltersApi.md#getRouteFilterChanges) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes | Get All Changes | | [**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 | +| [**searchCloudRouterRouteFilterAttachments**](RouteFiltersApi.md#searchCloudRouterRouteFilterAttachments) | **POST** /fabric/v4/routers/{routerId}/routeFilters/search | Search Cloud Router Route Filter Attachments | | [**searchRouteFilters**](RouteFiltersApi.md#searchRouteFilters) | **POST** /fabric/v4/routeFilters/search | Search Route Filters | @@ -835,6 +836,81 @@ public class Example { | **415** | Unsupported Media Type | - | | **500** | Internal server error | - | + +# **searchCloudRouterRouteFilterAttachments** +> CloudRouterRouteFiltersSearchResponse searchCloudRouterRouteFilterAttachments(routerId, cloudRouterRouteFiltersSearchBase) + +Search Cloud Router Route Filter Attachments + +This API provides capability to search route filter attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.RouteFiltersApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + RouteFiltersApi apiInstance = new RouteFiltersApi(defaultClient); + UUID routerId = UUID.randomUUID(); // UUID | Cloud Router UUID + CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase = new CloudRouterRouteFiltersSearchBase(); // CloudRouterRouteFiltersSearchBase | + try { + CloudRouterRouteFiltersSearchResponse result = apiInstance.searchCloudRouterRouteFilterAttachments(routerId, cloudRouterRouteFiltersSearchBase); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RouteFiltersApi#searchCloudRouterRouteFilterAttachments"); + 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 | +|------------- | ------------- | ------------- | -------------| +| **routerId** | **UUID**| Cloud Router UUID | | +| **cloudRouterRouteFiltersSearchBase** | [**CloudRouterRouteFiltersSearchBase**](CloudRouterRouteFiltersSearchBase.md)| | | + +### Return type + +[**CloudRouterRouteFiltersSearchResponse**](CloudRouterRouteFiltersSearchResponse.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 Filter ID Not Found | - | +| **415** | Unsupported Media Type | - | +| **500** | Internal server error | - | + # **searchRouteFilters** > RouteFiltersSearchResponse searchRouteFilters(routeFiltersSearchBase) diff --git a/services/fabricv4/docs/SearchFieldName.md b/services/fabricv4/docs/SearchFieldName.md index 6c435cd7..a49714eb 100644 --- a/services/fabricv4/docs/SearchFieldName.md +++ b/services/fabricv4/docs/SearchFieldName.md @@ -23,10 +23,6 @@ * `ASIDE_ACCESSPOINT_ROUTER_UUID` (value: `"/aSide/accessPoint/router/uuid"`) -* `ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANCTAG` (value: `"/aSide/accessPoint/linkProtocol/vlanCTag"`) - -* `ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANSTAG` (value: `"/aSide/accessPoint/linkProtocol/vlanSTag"`) - * `ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMIN` (value: `"/aSide/accessPoint/linkProtocol/vlanTagMin"`) * `ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMAX` (value: `"/aSide/accessPoint/linkProtocol/vlanTagMax"`) @@ -49,8 +45,14 @@ * `ASIDE_SERVICETOKEN_UUID` (value: `"/aSide/serviceToken/uuid"`) +* `BANDWIDTH` (value: `"/bandwidth"`) + * `CHANGE_STATUS` (value: `"/change/status"`) +* `CHANGELOG_CREATEDBY` (value: `"/changeLog/createdBy"`) + +* `CHANGELOG_CREATEDDATETIME` (value: `"/changeLog/createdDateTime"`) + * `OPERATION_EQUINIXSTATUS` (value: `"/operation/equinixStatus"`) * `OPERATION_PROVIDERSTATUS` (value: `"/operation/providerStatus"`) @@ -65,10 +67,6 @@ * `ZSIDE_ACCESSPOINT_AUTHENTICATIONKEY` (value: `"/zSide/accessPoint/authenticationKey"`) -* `ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANCTAG` (value: `"/zSide/accessPoint/linkProtocol/vlanCTag"`) - -* `ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANSTAG` (value: `"/zSide/accessPoint/linkProtocol/vlanSTag"`) - * `ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMIN` (value: `"/zSide/accessPoint/linkProtocol/vlanTagMin"`) * `ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMAX` (value: `"/zSide/accessPoint/linkProtocol/vlanTagMax"`) diff --git a/services/fabricv4/docs/ServiceProfile.md b/services/fabricv4/docs/ServiceProfile.md index 362d8485..bbcf079d 100644 --- a/services/fabricv4/docs/ServiceProfile.md +++ b/services/fabricv4/docs/ServiceProfile.md @@ -11,6 +11,7 @@ Service Profile is a software definition for a named provider service and it's n |**state** | **ServiceProfileStateEnum** | | [optional] | |**account** | [**SimplifiedAccount**](SimplifiedAccount.md) | Seller Account for Service Profile. | [optional] | |**project** | [**Project**](Project.md) | | [optional] | +|**change** | [**ServiceProfileChange**](ServiceProfileChange.md) | | [optional] | |**changeLog** | [**Changelog**](Changelog.md) | Seller Account for Service Profile. | [optional] | |**href** | **URI** | Service Profile URI response attribute | [optional] [readonly] | |**type** | **ServiceProfileTypeEnum** | | [optional] | diff --git a/services/fabricv4/docs/ServiceProfileActionRequest.md b/services/fabricv4/docs/ServiceProfileActionRequest.md new file mode 100644 index 00000000..8f7ea46f --- /dev/null +++ b/services/fabricv4/docs/ServiceProfileActionRequest.md @@ -0,0 +1,15 @@ + + +# ServiceProfileActionRequest + +Service Profile Action Request + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**type** | **String** | Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION | | +|**description** | **String** | Action description | [optional] | + + + diff --git a/services/fabricv4/docs/ServiceProfileActionResponse.md b/services/fabricv4/docs/ServiceProfileActionResponse.md new file mode 100644 index 00000000..9a40e44d --- /dev/null +++ b/services/fabricv4/docs/ServiceProfileActionResponse.md @@ -0,0 +1,18 @@ + + +# ServiceProfileActionResponse + +Service Profile Action Response + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**href** | **URI** | Service Profile Action URI | [optional] [readonly] | +|**type** | **String** | Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION | [optional] | +|**uuid** | **UUID** | Equinix-assigned action identifier | [optional] | +|**comments** | **String** | Action comments | [optional] | +|**changeLog** | [**Changelog**](Changelog.md) | | [optional] | + + + diff --git a/services/fabricv4/docs/ServiceProfileChange.md b/services/fabricv4/docs/ServiceProfileChange.md new file mode 100644 index 00000000..7bd0700d --- /dev/null +++ b/services/fabricv4/docs/ServiceProfileChange.md @@ -0,0 +1,33 @@ + + +# ServiceProfileChange + +Current state of latest service profile change + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**uuid** | **String** | Uniquely identifies a change | [optional] | +|**type** | **String** | Type of change | | +|**status** | [**StatusEnum**](#StatusEnum) | Current outcome of the change flow | [optional] | +|**createdDateTime** | **OffsetDateTime** | Set when change flow starts | | +|**updatedDateTime** | **OffsetDateTime** | Set when change object is updated | [optional] | +|**information** | **String** | Additional information | [optional] | +|**data** | [**List<JsonPatchOperation>**](JsonPatchOperation.md) | | [optional] | + + + +## Enum: StatusEnum + +| Name | Value | +|---- | -----| +| APPROVED | "APPROVED" | +| COMPLETED | "COMPLETED" | +| FAILED | "FAILED" | +| REJECTED | "REJECTED" | +| REQUESTED | "REQUESTED" | +| SUBMITTED_FOR_APPROVAL | "SUBMITTED_FOR_APPROVAL" | + + + diff --git a/services/fabricv4/docs/ServiceProfilesApi.md b/services/fabricv4/docs/ServiceProfilesApi.md index ab6ea10e..42d77b7e 100644 --- a/services/fabricv4/docs/ServiceProfilesApi.md +++ b/services/fabricv4/docs/ServiceProfilesApi.md @@ -5,6 +5,7 @@ All URIs are relative to *https://api.equinix.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createServiceProfile**](ServiceProfilesApi.md#createServiceProfile) | **POST** /fabric/v4/serviceProfiles | Create Profile | +| [**createServiceProfileAction**](ServiceProfilesApi.md#createServiceProfileAction) | **POST** /fabric/v4/serviceProfiles/{serviceProfileId}/actions | Profile Actions | | [**deleteServiceProfileByUuid**](ServiceProfilesApi.md#deleteServiceProfileByUuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile | | [**getServiceProfileByUuid**](ServiceProfilesApi.md#getServiceProfileByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile | | [**getServiceProfileMetrosByUuid**](ServiceProfilesApi.md#getServiceProfileMetrosByUuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros | @@ -85,6 +86,80 @@ public class Example { | **403** | Forbidden | - | | **500** | Internal Server Error | - | + +# **createServiceProfileAction** +> ServiceProfileActionResponse createServiceProfileAction(serviceProfileId, serviceProfileActionRequest) + +Profile Actions + +This API provides capability to accept/reject service profile update requests + +### Example +```java +// Import classes: +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.auth.*; +import com.equinix.sdk.fabricv4.models.*; +import com.equinix.sdk.fabricv4.api.ServiceProfilesApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://api.equinix.com"); + + // Configure HTTP bearer authorization: BearerAuth + HttpBearerAuth BearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("BearerAuth"); + BearerAuth.setBearerToken("BEARER TOKEN"); + + ServiceProfilesApi apiInstance = new ServiceProfilesApi(defaultClient); + UUID serviceProfileId = UUID.randomUUID(); // UUID | Service Profile UUID + ServiceProfileActionRequest serviceProfileActionRequest = new ServiceProfileActionRequest(); // ServiceProfileActionRequest | + try { + ServiceProfileActionResponse result = apiInstance.createServiceProfileAction(serviceProfileId, serviceProfileActionRequest); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ServiceProfilesApi#createServiceProfileAction"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + +| Name | Type | Description | Notes | +|------------- | ------------- | ------------- | -------------| +| **serviceProfileId** | **UUID**| Service Profile UUID | | +| **serviceProfileActionRequest** | [**ServiceProfileActionRequest**](ServiceProfileActionRequest.md)| | | + +### Return type + +[**ServiceProfileActionResponse**](ServiceProfileActionResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json; charset=UTF-8, application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | Successful operation | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **403** | Forbidden | - | +| **404** | Not Found | - | +| **500** | Internal Server Error | - | + # **deleteServiceProfileByUuid** > ServiceProfile deleteServiceProfileByUuid(serviceProfileId) @@ -530,7 +605,7 @@ public class Example { # **updateServiceProfileByUuid** -> ServiceProfile updateServiceProfileByUuid(serviceProfileId, ifMatch, jsonPatchOperation) +> ServiceProfile updateServiceProfileByUuid(serviceProfileId, jsonPatchOperation) Update Profile @@ -557,10 +632,9 @@ public class Example { ServiceProfilesApi apiInstance = new ServiceProfilesApi(defaultClient); UUID serviceProfileId = UUID.randomUUID(); // UUID | Service Profile UUID - String ifMatch = "ifMatch_example"; // String | conditional request List jsonPatchOperation = Arrays.asList(); // List | try { - ServiceProfile result = apiInstance.updateServiceProfileByUuid(serviceProfileId, ifMatch, jsonPatchOperation); + ServiceProfile result = apiInstance.updateServiceProfileByUuid(serviceProfileId, jsonPatchOperation); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceProfilesApi#updateServiceProfileByUuid"); @@ -578,7 +652,6 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **serviceProfileId** | **UUID**| Service Profile UUID | | -| **ifMatch** | **String**| conditional request | | | **jsonPatchOperation** | [**List<JsonPatchOperation>**](JsonPatchOperation.md)| | | ### Return type @@ -602,6 +675,5 @@ public class Example { | **401** | Unauthorized | - | | **403** | Forbidden | - | | **404** | Not Found | - | -| **412** | Precondition Failed | - | | **500** | Internal Server Error | - | diff --git a/services/fabricv4/docs/ServiceTokenSearchExpression.md b/services/fabricv4/docs/ServiceTokenSearchExpression.md index 612f9879..2879ecc8 100644 --- a/services/fabricv4/docs/ServiceTokenSearchExpression.md +++ b/services/fabricv4/docs/ServiceTokenSearchExpression.md @@ -8,6 +8,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| |**and** | [**List<ServiceTokenSearchExpression>**](ServiceTokenSearchExpression.md) | | [optional] | +|**or** | [**List<ServiceTokenSearchExpression>**](ServiceTokenSearchExpression.md) | | [optional] | |**property** | **ServiceTokenSearchFieldName** | | [optional] | |**operator** | [**OperatorEnum**](#OperatorEnum) | | [optional] | |**values** | **List<String>** | | [optional] | diff --git a/services/fabricv4/docs/SimplifiedNotification.md b/services/fabricv4/docs/SimplifiedNotification.md index d6f34ce1..c516359a 100644 --- a/services/fabricv4/docs/SimplifiedNotification.md +++ b/services/fabricv4/docs/SimplifiedNotification.md @@ -24,6 +24,8 @@ | PROFILE_LIFECYCLE | "PROFILE_LIFECYCLE" | | ALL | "ALL" | | SALES_REP_NOTIFICATIONS | "SALES_REP_NOTIFICATIONS" | +| TECHNICAL | "TECHNICAL" | +| ORDERING | "ORDERING" | diff --git a/services/fabricv4/docs/Sort.md b/services/fabricv4/docs/Sort.md index cbe85cef..0116d108 100644 --- a/services/fabricv4/docs/Sort.md +++ b/services/fabricv4/docs/Sort.md @@ -7,7 +7,7 @@ | Name | Type | Description | Notes | |------------ | ------------- | ------------- | -------------| -|**property** | **String** | Property to sort by | [optional] | +|**property** | **String** | Property to sort by((currently supports tags with filter syntax) | [optional] | |**direction** | **CompanyProfileSortDirection** | | [optional] | diff --git a/services/fabricv4/docs/StreamAlertRulesApi.md b/services/fabricv4/docs/StreamAlertRulesApi.md index 56944994..cc45b8e5 100644 --- a/services/fabricv4/docs/StreamAlertRulesApi.md +++ b/services/fabricv4/docs/StreamAlertRulesApi.md @@ -5,7 +5,7 @@ All URIs are relative to *https://api.equinix.com* | Method | HTTP request | Description | |------------- | ------------- | -------------| | [**createStreamAlertRules**](StreamAlertRulesApi.md#createStreamAlertRules) | **POST** /fabric/v4/streams/{streamId}/alertRules | Create Stream Alert Rules | -| [**deleteStreamAlertRuleByUuid**](StreamAlertRulesApi.md#deleteStreamAlertRuleByUuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules | +| [**deleteStreamAlertRuleByUuid**](StreamAlertRulesApi.md#deleteStreamAlertRuleByUuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Delete Stream Alert Rules | | [**getStreamAlertRuleByUuid**](StreamAlertRulesApi.md#getStreamAlertRuleByUuid) | **GET** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Get Stream Alert Rules | | [**getStreamAlertRules**](StreamAlertRulesApi.md#getStreamAlertRules) | **GET** /fabric/v4/streams/{streamId}/alertRules | Get Stream Alert Rules | | [**updateStreamAlertRuleByUuid**](StreamAlertRulesApi.md#updateStreamAlertRuleByUuid) | **PUT** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules | @@ -89,7 +89,7 @@ public class Example { # **deleteStreamAlertRuleByUuid** > StreamAlertRule deleteStreamAlertRuleByUuid(streamId, alertRuleId) -Update Stream Alert Rules +Delete Stream Alert Rules This API provides capability to delete a user's stream alert rule diff --git a/services/fabricv4/docs/StreamsApi.md b/services/fabricv4/docs/StreamsApi.md index 002f323f..abf5bd73 100644 --- a/services/fabricv4/docs/StreamsApi.md +++ b/services/fabricv4/docs/StreamsApi.md @@ -137,7 +137,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects, networkEdgeDevices, companyProfiles] | | **streamId** | **UUID**| Stream UUID | | ### Return type @@ -285,7 +285,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects, networkEdgeDevices, companyProfiles] | | **streamId** | **UUID**| Stream UUID | | ### Return type @@ -582,7 +582,7 @@ public class Example { | Name | Type | Description | Notes | |------------- | ------------- | ------------- | -------------| | **assetId** | **UUID**| asset UUID | | -| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects] | +| **asset** | [**Asset**](.md)| asset | [enum: ports, connections, routers, metros, organizations, projects, networkEdgeDevices, companyProfiles] | | **streamId** | **UUID**| Stream UUID | | | **streamAssetPutRequest** | [**StreamAssetPutRequest**](StreamAssetPutRequest.md)| | | diff --git a/services/fabricv4/docs/ToolCallInformationInner.md b/services/fabricv4/docs/ToolCallInformationInner.md new file mode 100644 index 00000000..41e31cf3 --- /dev/null +++ b/services/fabricv4/docs/ToolCallInformationInner.md @@ -0,0 +1,15 @@ + + +# ToolCallInformationInner + + +## Properties + +| Name | Type | Description | Notes | +|------------ | ------------- | ------------- | -------------| +|**name** | **String** | Name of tools called | [optional] | +|**input** | **String** | Content of the tool request | [optional] | +|**response** | **String** | Content of the tool response | [optional] | + + + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/JSON.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/JSON.java index 9feaae1a..38fb5b91 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/JSON.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/JSON.java @@ -144,6 +144,18 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AccessPoint.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AccessPointSelector.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AddOperation.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Agent.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentActivities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentActivitiesMetadata.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentDefinition.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentGetActivities.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentGetAllResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentPatchRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentPostRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentTemplate.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentTemplateGetAllResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AgentTemplates.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Agents.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AlertRulePostRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AlertRulePutRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.AllPhysicalPortsResponse.CustomTypeAdapterFactory()); @@ -168,6 +180,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.BulkPortRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Change.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Changelog.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ChatMessage.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudEvent.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudEventData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudEventFilters.CustomTypeAdapterFactory()); @@ -207,6 +220,20 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterPostRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterPostRequestBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterPostRequestPackage.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationAndExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationOrExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationSimpleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsSearchBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsSearchResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterAndExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterOrExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterSimpleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersSearchBase.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersSearchResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterSearchRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterSimpleExpression.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CloudRouterSortCriteria.CustomTypeAdapterFactory()); @@ -216,6 +243,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileChange.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileResponseAccount.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileSearchFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileSearchRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.CompanyProfileSearchResponse.CustomTypeAdapterFactory()); @@ -298,6 +326,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MarketingInfo.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MarketplaceSubscription.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Md5.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MessagesInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MetalInterconnection.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Metric.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MetricDatapoints.CustomTypeAdapterFactory()); @@ -311,6 +340,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Metro.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MetroError.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.MetroResponse.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ModelConfiguration.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ModelInterface.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ModelPackage.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Network.CustomTypeAdapterFactory()); @@ -385,6 +415,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ProcessStep.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.Project.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.PtpAdvanceConfiguration.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RaAttachmentSortItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RemoveOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ReplaceOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ResourceData.CustomTypeAdapterFactory()); @@ -393,17 +424,26 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ResponseIncompleteDetails.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ResponseUsageInputTokensDetails.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ResponseUsageOutputTokensDetails.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RfAttachmentSortItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationChangeData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationChangeDataResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationConnectionsData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRuleAndExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRuleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRuleOrExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRuleSimpleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRuleSortCriteria.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesChange.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesChangeData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesChangeDataResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesChangeOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesPatchRequestItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesPostRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesSearchRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationRulesSearchResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationSortItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationsBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteAggregationsChange.CustomTypeAdapterFactory()); @@ -418,14 +458,22 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterChangeData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterChangeDataResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterConnectionsData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRuleAndExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRuleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRuleOrExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRuleSimpleExpression.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRuleSortCriteria.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesChange.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesChangeData.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesChangeDataResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesChangeOperation.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesData.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesPatchRequestItem.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesPostRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesSearchRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFilterRulesSearchResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFiltersBase.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFiltersChange.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.RouteFiltersChangeOperation.CustomTypeAdapterFactory()); @@ -470,7 +518,10 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointTypeCOLO.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointTypeVD.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointVD.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileActionRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileActionResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileAndFilter.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileChange.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileFilter.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileLinkProtocolConfig.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ServiceProfileListResponse.CustomTypeAdapterFactory()); @@ -554,6 +605,7 @@ public Enum deserialize(JsonElement json, java.lang.reflect.Type type, JsonDeser gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.TimeServiceSimpleExpression.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.TimeServiceSortCriteria.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.TimeServicesSearchRequest.CustomTypeAdapterFactory()); + gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ToolCallInformationInner.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ValidateConnectionResponse.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ValidateRequest.CustomTypeAdapterFactory()); gsonBuilder.registerTypeAdapterFactory(new com.equinix.sdk.fabricv4.model.ValidateRequestFilter.CustomTypeAdapterFactory()); diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentTemplatesApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentTemplatesApi.java new file mode 100644 index 00000000..bf7738ff --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentTemplatesApi.java @@ -0,0 +1,384 @@ +/* + * 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.sdk.fabricv4.api; + +import com.equinix.sdk.fabricv4.ApiCallback; +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.ApiResponse; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.Pair; +import com.equinix.sdk.fabricv4.ProgressRequestBody; +import com.equinix.sdk.fabricv4.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.equinix.sdk.fabricv4.model.AgentTemplateGetAllResponse; +import com.equinix.sdk.fabricv4.model.AgentTemplates; +import com.equinix.sdk.fabricv4.model.Error; +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; + +public class AgentTemplatesApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AgentTemplatesApi() { + this(Configuration.getDefaultApiClient()); + } + + public AgentTemplatesApi(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 getAgentTemplateByUuid + * @param agentTemplateId Agent Template UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentTemplateByUuidCall(@javax.annotation.Nonnull UUID agentTemplateId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agentTemplates/{agentTemplateId}" + .replace("{" + "agentTemplateId" + "}", localVarApiClient.escapeString(agentTemplateId.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 getAgentTemplateByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID agentTemplateId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentTemplateId' is set + if (agentTemplateId == null) { + throw new ApiException("Missing the required parameter 'agentTemplateId' when calling getAgentTemplateByUuid(Async)"); + } + + return getAgentTemplateByUuidCall(agentTemplateId, offset, limit, _callback); + + } + + /** + * Get Agent Template by UUID + * This API provides capability to retrieve an agent template by uuid + * @param agentTemplateId Agent Template UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return AgentTemplates + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public AgentTemplates getAgentTemplateByUuid(@javax.annotation.Nonnull UUID agentTemplateId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = getAgentTemplateByUuidWithHttpInfo(agentTemplateId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get Agent Template by UUID + * This API provides capability to retrieve an agent template by uuid + * @param agentTemplateId Agent Template UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<AgentTemplates> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse getAgentTemplateByUuidWithHttpInfo(@javax.annotation.Nonnull UUID agentTemplateId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = getAgentTemplateByUuidValidateBeforeCall(agentTemplateId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Agent Template by UUID (asynchronously) + * This API provides capability to retrieve an agent template by uuid + * @param agentTemplateId Agent Template UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentTemplateByUuidAsync(@javax.annotation.Nonnull UUID agentTemplateId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAgentTemplateByUuidValidateBeforeCall(agentTemplateId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAgentTemplates + * @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 + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentTemplatesCall(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agentTemplates"; + + 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 getAgentTemplatesValidateBeforeCall(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + return getAgentTemplatesCall(offset, limit, _callback); + + } + + /** + * Get Agent Templates + * This API provides capability to retrieve agent templates + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return AgentTemplateGetAllResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public AgentTemplateGetAllResponse getAgentTemplates(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = getAgentTemplatesWithHttpInfo(offset, limit); + return localVarResp.getData(); + } + + /** + * Get Agent Templates + * This API provides capability to retrieve agent templates + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<AgentTemplateGetAllResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse getAgentTemplatesWithHttpInfo(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = getAgentTemplatesValidateBeforeCall(offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Agent Templates (asynchronously) + * This API provides capability to retrieve agent templates + * @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 + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentTemplatesAsync(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAgentTemplatesValidateBeforeCall(offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentsApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentsApi.java new file mode 100644 index 00000000..de9dc0cd --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/AgentsApi.java @@ -0,0 +1,1005 @@ +/* + * 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.sdk.fabricv4.api; + +import com.equinix.sdk.fabricv4.ApiCallback; +import com.equinix.sdk.fabricv4.ApiClient; +import com.equinix.sdk.fabricv4.ApiException; +import com.equinix.sdk.fabricv4.ApiResponse; +import com.equinix.sdk.fabricv4.Configuration; +import com.equinix.sdk.fabricv4.Pair; +import com.equinix.sdk.fabricv4.ProgressRequestBody; +import com.equinix.sdk.fabricv4.ProgressResponseBody; + +import com.google.gson.reflect.TypeToken; + +import java.io.IOException; + + +import com.equinix.sdk.fabricv4.model.AgentGetActivities; +import com.equinix.sdk.fabricv4.model.AgentGetAllResponse; +import com.equinix.sdk.fabricv4.model.AgentPatchRequest; +import com.equinix.sdk.fabricv4.model.AgentPostRequest; +import com.equinix.sdk.fabricv4.model.Agents; +import com.equinix.sdk.fabricv4.model.Error; +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; + +public class AgentsApi { + private ApiClient localVarApiClient; + private int localHostIndex; + private String localCustomBaseUrl; + + public AgentsApi() { + this(Configuration.getDefaultApiClient()); + } + + public AgentsApi(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 createAgent + * @param agentPostRequest (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 + + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createAgentCall(@javax.annotation.Nonnull AgentPostRequest agentPostRequest, 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 = agentPostRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/agents"; + + 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 createAgentValidateBeforeCall(@javax.annotation.Nonnull AgentPostRequest agentPostRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentPostRequest' is set + if (agentPostRequest == null) { + throw new ApiException("Missing the required parameter 'agentPostRequest' when calling createAgent(Async)"); + } + + return createAgentCall(agentPostRequest, _callback); + + } + + /** + * Create Agent + * This API provides capability to create user's agent + * @param agentPostRequest (required) + * @return Agents + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public Agents createAgent(@javax.annotation.Nonnull AgentPostRequest agentPostRequest) throws ApiException { + ApiResponse localVarResp = createAgentWithHttpInfo(agentPostRequest); + return localVarResp.getData(); + } + + /** + * Create Agent + * This API provides capability to create user's agent + * @param agentPostRequest (required) + * @return ApiResponse<Agents> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse createAgentWithHttpInfo(@javax.annotation.Nonnull AgentPostRequest agentPostRequest) throws ApiException { + okhttp3.Call localVarCall = createAgentValidateBeforeCall(agentPostRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create Agent (asynchronously) + * This API provides capability to create user's agent + * @param agentPostRequest (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 + + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
400 Bad request -
401 Unauthorized -
403 Forbidden -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call createAgentAsync(@javax.annotation.Nonnull AgentPostRequest agentPostRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createAgentValidateBeforeCall(agentPostRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for deleteAgentByUuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call deleteAgentByUuidCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agents/{agentId}" + .replace("{" + "agentId" + "}", localVarApiClient.escapeString(agentId.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, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deleteAgentByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentId' is set + if (agentId == null) { + throw new ApiException("Missing the required parameter 'agentId' when calling deleteAgentByUuid(Async)"); + } + + return deleteAgentByUuidCall(agentId, offset, limit, _callback); + + } + + /** + * Delete Agent by UUID + * This API provides capability to delete an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return Agents + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public Agents deleteAgentByUuid(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = deleteAgentByUuidWithHttpInfo(agentId, offset, limit); + return localVarResp.getData(); + } + + /** + * Delete Agent by UUID + * This API provides capability to delete an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<Agents> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse deleteAgentByUuidWithHttpInfo(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = deleteAgentByUuidValidateBeforeCall(agentId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Delete Agent by UUID (asynchronously) + * This API provides capability to delete an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call deleteAgentByUuidAsync(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deleteAgentByUuidValidateBeforeCall(agentId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAgentActivities + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentActivitiesCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agents/{agentId}/activities" + .replace("{" + "agentId" + "}", localVarApiClient.escapeString(agentId.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 getAgentActivitiesValidateBeforeCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentId' is set + if (agentId == null) { + throw new ApiException("Missing the required parameter 'agentId' when calling getAgentActivities(Async)"); + } + + return getAgentActivitiesCall(agentId, offset, limit, _callback); + + } + + /** + * Get Agent Activities + * This API provides capability to retrieve an agent activities + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return AgentGetActivities + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public AgentGetActivities getAgentActivities(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = getAgentActivitiesWithHttpInfo(agentId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get Agent Activities + * This API provides capability to retrieve an agent activities + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<AgentGetActivities> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse getAgentActivitiesWithHttpInfo(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = getAgentActivitiesValidateBeforeCall(agentId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Agent Activities (asynchronously) + * This API provides capability to retrieve an agent activities + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentActivitiesAsync(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAgentActivitiesValidateBeforeCall(agentId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAgentByUuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentByUuidCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agents/{agentId}" + .replace("{" + "agentId" + "}", localVarApiClient.escapeString(agentId.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 getAgentByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentId' is set + if (agentId == null) { + throw new ApiException("Missing the required parameter 'agentId' when calling getAgentByUuid(Async)"); + } + + return getAgentByUuidCall(agentId, offset, limit, _callback); + + } + + /** + * Get Agent by UUID + * This API provides capability to retrieve an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return Agents + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public Agents getAgentByUuid(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = getAgentByUuidWithHttpInfo(agentId, offset, limit); + return localVarResp.getData(); + } + + /** + * Get Agent by UUID + * This API provides capability to retrieve an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<Agents> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse getAgentByUuidWithHttpInfo(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = getAgentByUuidValidateBeforeCall(agentId, offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Agent by UUID (asynchronously) + * This API provides capability to retrieve an agent by uuid + * @param agentId Agent UUID (required) + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentByUuidAsync(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAgentByUuidValidateBeforeCall(agentId, offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for getAgents + * @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 + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentsCall(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable 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/agents"; + + 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 getAgentsValidateBeforeCall(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + return getAgentsCall(offset, limit, _callback); + + } + + /** + * Get Agents + * This API provides capability to retrieve agents + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return AgentGetAllResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public AgentGetAllResponse getAgents(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + ApiResponse localVarResp = getAgentsWithHttpInfo(offset, limit); + return localVarResp.getData(); + } + + /** + * Get Agents + * This API provides capability to retrieve agents + * @param offset offset (optional) + * @param limit number of records to fetch (optional) + * @return ApiResponse<AgentGetAllResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse getAgentsWithHttpInfo(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit) throws ApiException { + okhttp3.Call localVarCall = getAgentsValidateBeforeCall(offset, limit, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get Agents (asynchronously) + * This API provides capability to retrieve agents + * @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 + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call getAgentsAsync(@javax.annotation.Nullable Integer offset, @javax.annotation.Nullable Integer limit, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getAgentsValidateBeforeCall(offset, limit, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for patchAgentByUuid + * @param agentId Agent UUID (required) + * @param agentPatchRequest (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 + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call patchAgentByUuidCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nonnull AgentPatchRequest agentPatchRequest, 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 = agentPatchRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/agents/{agentId}" + .replace("{" + "agentId" + "}", localVarApiClient.escapeString(agentId.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 patchAgentByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nonnull AgentPatchRequest agentPatchRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'agentId' is set + if (agentId == null) { + throw new ApiException("Missing the required parameter 'agentId' when calling patchAgentByUuid(Async)"); + } + + // verify the required parameter 'agentPatchRequest' is set + if (agentPatchRequest == null) { + throw new ApiException("Missing the required parameter 'agentPatchRequest' when calling patchAgentByUuid(Async)"); + } + + return patchAgentByUuidCall(agentId, agentPatchRequest, _callback); + + } + + /** + * Update Agent by UUID + * This API provides capability to update an agent by uuid + * @param agentId Agent UUID (required) + * @param agentPatchRequest (required) + * @return Agents + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public Agents patchAgentByUuid(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nonnull AgentPatchRequest agentPatchRequest) throws ApiException { + ApiResponse localVarResp = patchAgentByUuidWithHttpInfo(agentId, agentPatchRequest); + return localVarResp.getData(); + } + + /** + * Update Agent by UUID + * This API provides capability to update an agent by uuid + * @param agentId Agent UUID (required) + * @param agentPatchRequest (required) + * @return ApiResponse<Agents> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public ApiResponse patchAgentByUuidWithHttpInfo(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nonnull AgentPatchRequest agentPatchRequest) throws ApiException { + okhttp3.Call localVarCall = patchAgentByUuidValidateBeforeCall(agentId, agentPatchRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update Agent by UUID (asynchronously) + * This API provides capability to update an agent by uuid + * @param agentId Agent UUID (required) + * @param agentPatchRequest (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 + + + + + + + + +
Response Details
Status Code Description Response Headers
202 Agent object -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal server error -
+ */ + public okhttp3.Call patchAgentByUuidAsync(@javax.annotation.Nonnull UUID agentId, @javax.annotation.Nonnull AgentPatchRequest agentPatchRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = patchAgentByUuidValidateBeforeCall(agentId, agentPatchRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } +} diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/CloudRoutersApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/CloudRoutersApi.java index 52108962..5d3957e3 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/CloudRoutersApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/CloudRoutersApi.java @@ -1099,10 +1099,10 @@ private okhttp3.Call getCloudRouterActionsValidateBeforeCall(@javax.annotation.N /** * Get Route Table Actions - * This API provides capability to fetch action status + * This API provides capability to fetch all actions for a given cloud router * @param routerId Router UUID (required) * @param state Action state (optional) - * @return CloudRouterActionResponse + * @return CloudRouterActionsSearchResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1117,17 +1117,17 @@ private okhttp3.Call getCloudRouterActionsValidateBeforeCall(@javax.annotation.N
500 Internal server error -
*/ - public CloudRouterActionResponse getCloudRouterActions(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state) throws ApiException { - ApiResponse localVarResp = getCloudRouterActionsWithHttpInfo(routerId, state); + public CloudRouterActionsSearchResponse getCloudRouterActions(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state) throws ApiException { + ApiResponse localVarResp = getCloudRouterActionsWithHttpInfo(routerId, state); return localVarResp.getData(); } /** * Get Route Table Actions - * This API provides capability to fetch action status + * This API provides capability to fetch all actions for a given cloud router * @param routerId Router UUID (required) * @param state Action state (optional) - * @return ApiResponse<CloudRouterActionResponse> + * @return ApiResponse<CloudRouterActionsSearchResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -1142,15 +1142,15 @@ public CloudRouterActionResponse getCloudRouterActions(@javax.annotation.Nonnull
500 Internal server error -
*/ - public ApiResponse getCloudRouterActionsWithHttpInfo(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state) throws ApiException { + public ApiResponse getCloudRouterActionsWithHttpInfo(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state) throws ApiException { okhttp3.Call localVarCall = getCloudRouterActionsValidateBeforeCall(routerId, state, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } /** * Get Route Table Actions (asynchronously) - * This API provides capability to fetch action status + * This API provides capability to fetch all actions for a given cloud router * @param routerId Router UUID (required) * @param state Action state (optional) * @param _callback The callback to be executed when the API call finishes @@ -1169,10 +1169,10 @@ public ApiResponse getCloudRouterActionsWithHttpInfo( 500 Internal server error - */ - public okhttp3.Call getCloudRouterActionsAsync(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCloudRouterActionsAsync(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nullable CloudRouterActionState state, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getCloudRouterActionsValidateBeforeCall(routerId, state, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -2804,7 +2804,7 @@ private okhttp3.Call searchRouterActionsValidateBeforeCall(@javax.annotation.Non /** * Search Route Table Actions - * This API provides capability to refresh route table and bgp session summary information + * This API provides capability to search route table actions for a given cloud router * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) * @return CloudRouterActionsSearchResponse @@ -2829,7 +2829,7 @@ public CloudRouterActionsSearchResponse searchRouterActions(@javax.annotation.No /** * Search Route Table Actions - * This API provides capability to refresh route table and bgp session summary information + * This API provides capability to search route table actions for a given cloud router * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) * @return ApiResponse<CloudRouterActionsSearchResponse> @@ -2855,7 +2855,7 @@ public ApiResponse searchRouterActionsWithHttp /** * Search Route Table Actions (asynchronously) - * This API provides capability to refresh route table and bgp session summary information + * This API provides capability to search route table actions for a given cloud router * @param routerId Router UUID (required) * @param cloudRouterActionsSearchRequest (required) * @param _callback The callback to be executed when the API call finishes diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/PortsApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/PortsApi.java index ec4d9390..8e191ded 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/PortsApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/PortsApi.java @@ -244,7 +244,7 @@ public okhttp3.Call addToLagAsync(@javax.annotation.Nonnull UUID portId, @javax. Response Details Status Code Description Response Headers 200 Successful operation - - 201 Successful operation - + 202 Successful operation - 400 Bad request - 401 Unauthorized - 500 Internal Server Error - @@ -322,7 +322,7 @@ private okhttp3.Call createPortValidateBeforeCall(@javax.annotation.Nonnull Port Response Details Status Code Description Response Headers 200 Successful operation - - 201 Successful operation - + 202 Successful operation - 400 Bad request - 401 Unauthorized - 500 Internal Server Error - @@ -345,7 +345,7 @@ public Port createPort(@javax.annotation.Nonnull PortRequest portRequest, @javax Response Details Status Code Description Response Headers 200 Successful operation - - 201 Successful operation - + 202 Successful operation - 400 Bad request - 401 Unauthorized - 500 Internal Server Error - @@ -370,7 +370,7 @@ public ApiResponse createPortWithHttpInfo(@javax.annotation.Nonnull PortRe Response Details Status Code Description Response Headers 200 Successful operation - - 201 Successful operation - + 202 Successful operation - 400 Bad request - 401 Unauthorized - 500 Internal Server Error - diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationRulesApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationRulesApi.java index d27527f4..f65e383a 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationRulesApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationRulesApi.java @@ -33,6 +33,8 @@ import com.equinix.sdk.fabricv4.model.RouteAggregationRulesData; import com.equinix.sdk.fabricv4.model.RouteAggregationRulesPatchRequestItem; import com.equinix.sdk.fabricv4.model.RouteAggregationRulesPostRequest; +import com.equinix.sdk.fabricv4.model.RouteAggregationRulesSearchRequest; +import com.equinix.sdk.fabricv4.model.RouteAggregationRulesSearchResponse; import java.util.UUID; import java.lang.reflect.Type; @@ -1568,4 +1570,165 @@ public okhttp3.Call replaceRouteAggregationRuleByUuidAsync(@javax.annotation.Non localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for searchRouteAggregationRules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesSearchRequest (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 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 searchRouteAggregationRulesCall(@javax.annotation.Nonnull String routeAggregationId, @javax.annotation.Nonnull RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest, 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 = routeAggregationRulesSearchRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search" + .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 searchRouteAggregationRulesValidateBeforeCall(@javax.annotation.Nonnull String routeAggregationId, @javax.annotation.Nonnull RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest, 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 searchRouteAggregationRules(Async)"); + } + + // verify the required parameter 'routeAggregationRulesSearchRequest' is set + if (routeAggregationRulesSearchRequest == null) { + throw new ApiException("Missing the required parameter 'routeAggregationRulesSearchRequest' when calling searchRouteAggregationRules(Async)"); + } + + return searchRouteAggregationRulesCall(routeAggregationId, routeAggregationRulesSearchRequest, _callback); + + } + + /** + * Search Route Aggregation Rules + * This API provides capability to search Route Aggregation Rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesSearchRequest (required) + * @return RouteAggregationRulesSearchResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 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 RouteAggregationRulesSearchResponse searchRouteAggregationRules(@javax.annotation.Nonnull String routeAggregationId, @javax.annotation.Nonnull RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest) throws ApiException { + ApiResponse localVarResp = searchRouteAggregationRulesWithHttpInfo(routeAggregationId, routeAggregationRulesSearchRequest); + return localVarResp.getData(); + } + + /** + * Search Route Aggregation Rules + * This API provides capability to search Route Aggregation Rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesSearchRequest (required) + * @return ApiResponse<RouteAggregationRulesSearchResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 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 searchRouteAggregationRulesWithHttpInfo(@javax.annotation.Nonnull String routeAggregationId, @javax.annotation.Nonnull RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest) throws ApiException { + okhttp3.Call localVarCall = searchRouteAggregationRulesValidateBeforeCall(routeAggregationId, routeAggregationRulesSearchRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search Route Aggregation Rules (asynchronously) + * This API provides capability to search Route Aggregation Rules + * @param routeAggregationId Route Aggregations Id (required) + * @param routeAggregationRulesSearchRequest (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 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 searchRouteAggregationRulesAsync(@javax.annotation.Nonnull String routeAggregationId, @javax.annotation.Nonnull RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRouteAggregationRulesValidateBeforeCall(routeAggregationId, routeAggregationRulesSearchRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationsApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationsApi.java index 10d2c5e2..dc529aca 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationsApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteAggregationsApi.java @@ -25,6 +25,8 @@ import java.io.IOException; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsSearchBase; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsSearchResponse; import com.equinix.sdk.fabricv4.model.ConnectionRouteAggregationData; import com.equinix.sdk.fabricv4.model.Error; import com.equinix.sdk.fabricv4.model.GetAllConnectionRouteAggregationsResponse; @@ -1801,6 +1803,167 @@ public okhttp3.Call patchRouteAggregationByUuidAsync(@javax.annotation.Nonnull S localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for searchCloudRouterRouteAggregationAttachments + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteAggregationsSearchBase (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 + + + + + + + + + + +
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 searchCloudRouterRouteAggregationAttachmentsCall(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase, 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 = cloudRouterRouteAggregationsSearchBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routers/{routerId}/routeAggregations/search" + .replace("{" + "routerId" + "}", localVarApiClient.escapeString(routerId.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 searchCloudRouterRouteAggregationAttachmentsValidateBeforeCall(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routerId' is set + if (routerId == null) { + throw new ApiException("Missing the required parameter 'routerId' when calling searchCloudRouterRouteAggregationAttachments(Async)"); + } + + // verify the required parameter 'cloudRouterRouteAggregationsSearchBase' is set + if (cloudRouterRouteAggregationsSearchBase == null) { + throw new ApiException("Missing the required parameter 'cloudRouterRouteAggregationsSearchBase' when calling searchCloudRouterRouteAggregationAttachments(Async)"); + } + + return searchCloudRouterRouteAggregationAttachmentsCall(routerId, cloudRouterRouteAggregationsSearchBase, _callback); + + } + + /** + * Search Cloud Router Route Aggregation Attachments + * This API provides capability to search route aggregation attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteAggregationsSearchBase (required) + * @return CloudRouterRouteAggregationsSearchResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
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 CloudRouterRouteAggregationsSearchResponse searchCloudRouterRouteAggregationAttachments(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase) throws ApiException { + ApiResponse localVarResp = searchCloudRouterRouteAggregationAttachmentsWithHttpInfo(routerId, cloudRouterRouteAggregationsSearchBase); + return localVarResp.getData(); + } + + /** + * Search Cloud Router Route Aggregation Attachments + * This API provides capability to search route aggregation attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteAggregationsSearchBase (required) + * @return ApiResponse<CloudRouterRouteAggregationsSearchResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
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 searchCloudRouterRouteAggregationAttachmentsWithHttpInfo(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase) throws ApiException { + okhttp3.Call localVarCall = searchCloudRouterRouteAggregationAttachmentsValidateBeforeCall(routerId, cloudRouterRouteAggregationsSearchBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search Cloud Router Route Aggregation Attachments (asynchronously) + * This API provides capability to search route aggregation attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteAggregationsSearchBase (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 + + + + + + + + + + +
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 searchCloudRouterRouteAggregationAttachmentsAsync(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = searchCloudRouterRouteAggregationAttachmentsValidateBeforeCall(routerId, cloudRouterRouteAggregationsSearchBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for searchRouteAggregations * @param routeAggregationsSearchBase (required) diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFilterRulesApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFilterRulesApi.java index 826cef24..ee290d87 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFilterRulesApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFilterRulesApi.java @@ -33,6 +33,8 @@ import com.equinix.sdk.fabricv4.model.RouteFilterRulesData; import com.equinix.sdk.fabricv4.model.RouteFilterRulesPatchRequestItem; import com.equinix.sdk.fabricv4.model.RouteFilterRulesPostRequest; +import com.equinix.sdk.fabricv4.model.RouteFilterRulesSearchRequest; +import com.equinix.sdk.fabricv4.model.RouteFilterRulesSearchResponse; import java.util.UUID; import java.lang.reflect.Type; @@ -1568,4 +1570,165 @@ public okhttp3.Call replaceRouteFilterRuleByUuidAsync(@javax.annotation.Nonnull localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for searchRouteFilterRules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesSearchRequest (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchRouteFilterRulesCall(@javax.annotation.Nonnull String routeFilterId, @javax.annotation.Nonnull RouteFilterRulesSearchRequest routeFilterRulesSearchRequest, 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 = routeFilterRulesSearchRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search" + .replace("{" + "routeFilterId" + "}", localVarApiClient.escapeString(routeFilterId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + if (localVarContentType != null) { + localVarHeaderParams.put("Content-Type", localVarContentType); + } + + String[] localVarAuthNames = new String[] { "BearerAuth" }; + return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call searchRouteFilterRulesValidateBeforeCall(@javax.annotation.Nonnull String routeFilterId, @javax.annotation.Nonnull RouteFilterRulesSearchRequest routeFilterRulesSearchRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routeFilterId' is set + if (routeFilterId == null) { + throw new ApiException("Missing the required parameter 'routeFilterId' when calling searchRouteFilterRules(Async)"); + } + + // verify the required parameter 'routeFilterRulesSearchRequest' is set + if (routeFilterRulesSearchRequest == null) { + throw new ApiException("Missing the required parameter 'routeFilterRulesSearchRequest' when calling searchRouteFilterRules(Async)"); + } + + return searchRouteFilterRulesCall(routeFilterId, routeFilterRulesSearchRequest, _callback); + + } + + /** + * Search Route Filter Rules + * This API provides capability to search Route Filter Rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesSearchRequest (required) + * @return RouteFilterRulesSearchResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public RouteFilterRulesSearchResponse searchRouteFilterRules(@javax.annotation.Nonnull String routeFilterId, @javax.annotation.Nonnull RouteFilterRulesSearchRequest routeFilterRulesSearchRequest) throws ApiException { + ApiResponse localVarResp = searchRouteFilterRulesWithHttpInfo(routeFilterId, routeFilterRulesSearchRequest); + return localVarResp.getData(); + } + + /** + * Search Route Filter Rules + * This API provides capability to search Route Filter Rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesSearchRequest (required) + * @return ApiResponse<RouteFilterRulesSearchResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse searchRouteFilterRulesWithHttpInfo(@javax.annotation.Nonnull String routeFilterId, @javax.annotation.Nonnull RouteFilterRulesSearchRequest routeFilterRulesSearchRequest) throws ApiException { + okhttp3.Call localVarCall = searchRouteFilterRulesValidateBeforeCall(routeFilterId, routeFilterRulesSearchRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search Route Filter Rules (asynchronously) + * This API provides capability to search Route Filter Rules + * @param routeFilterId Route Filters Id (required) + * @param routeFilterRulesSearchRequest (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter Rule ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchRouteFilterRulesAsync(@javax.annotation.Nonnull String routeFilterId, @javax.annotation.Nonnull RouteFilterRulesSearchRequest routeFilterRulesSearchRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = searchRouteFilterRulesValidateBeforeCall(routeFilterId, routeFilterRulesSearchRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFiltersApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFiltersApi.java index 9ee7ed90..5dd79218 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFiltersApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/RouteFiltersApi.java @@ -25,6 +25,8 @@ import java.io.IOException; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersSearchBase; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersSearchResponse; import com.equinix.sdk.fabricv4.model.ConnectionRouteFilterData; import com.equinix.sdk.fabricv4.model.ConnectionRouteFiltersBase; import com.equinix.sdk.fabricv4.model.Error; @@ -1812,6 +1814,167 @@ public okhttp3.Call patchRouteFilterByUuidAsync(@javax.annotation.Nonnull String localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for searchCloudRouterRouteFilterAttachments + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteFiltersSearchBase (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchCloudRouterRouteFilterAttachmentsCall(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase, 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 = cloudRouterRouteFiltersSearchBase; + + // create path and map variables + String localVarPath = "/fabric/v4/routers/{routerId}/routeFilters/search" + .replace("{" + "routerId" + "}", localVarApiClient.escapeString(routerId.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 searchCloudRouterRouteFilterAttachmentsValidateBeforeCall(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'routerId' is set + if (routerId == null) { + throw new ApiException("Missing the required parameter 'routerId' when calling searchCloudRouterRouteFilterAttachments(Async)"); + } + + // verify the required parameter 'cloudRouterRouteFiltersSearchBase' is set + if (cloudRouterRouteFiltersSearchBase == null) { + throw new ApiException("Missing the required parameter 'cloudRouterRouteFiltersSearchBase' when calling searchCloudRouterRouteFilterAttachments(Async)"); + } + + return searchCloudRouterRouteFilterAttachmentsCall(routerId, cloudRouterRouteFiltersSearchBase, _callback); + + } + + /** + * Search Cloud Router Route Filter Attachments + * This API provides capability to search route filter attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteFiltersSearchBase (required) + * @return CloudRouterRouteFiltersSearchResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public CloudRouterRouteFiltersSearchResponse searchCloudRouterRouteFilterAttachments(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase) throws ApiException { + ApiResponse localVarResp = searchCloudRouterRouteFilterAttachmentsWithHttpInfo(routerId, cloudRouterRouteFiltersSearchBase); + return localVarResp.getData(); + } + + /** + * Search Cloud Router Route Filter Attachments + * This API provides capability to search route filter attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteFiltersSearchBase (required) + * @return ApiResponse<CloudRouterRouteFiltersSearchResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public ApiResponse searchCloudRouterRouteFilterAttachmentsWithHttpInfo(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase) throws ApiException { + okhttp3.Call localVarCall = searchCloudRouterRouteFilterAttachmentsValidateBeforeCall(routerId, cloudRouterRouteFiltersSearchBase, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Search Cloud Router Route Filter Attachments (asynchronously) + * This API provides capability to search route filter attachments for a given cloud router <font color=\"red\"> <sup color='red'>Beta</sup></font> + * @param routerId Cloud Router UUID (required) + * @param cloudRouterRouteFiltersSearchBase (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 + + + + + + + + + + +
Response Details
Status Code Description Response Headers
200 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Route Filter ID Not Found -
415 Unsupported Media Type -
500 Internal server error -
+ */ + public okhttp3.Call searchCloudRouterRouteFilterAttachmentsAsync(@javax.annotation.Nonnull UUID routerId, @javax.annotation.Nonnull CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = searchCloudRouterRouteFilterAttachmentsValidateBeforeCall(routerId, cloudRouterRouteFiltersSearchBase, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for searchRouteFilters * @param routeFiltersSearchBase (required) diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/ServiceProfilesApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/ServiceProfilesApi.java index 84d2a74a..886cc363 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/ServiceProfilesApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/ServiceProfilesApi.java @@ -29,6 +29,8 @@ import com.equinix.sdk.fabricv4.model.JsonPatchOperation; import com.equinix.sdk.fabricv4.model.ServiceMetros; import com.equinix.sdk.fabricv4.model.ServiceProfile; +import com.equinix.sdk.fabricv4.model.ServiceProfileActionRequest; +import com.equinix.sdk.fabricv4.model.ServiceProfileActionResponse; import com.equinix.sdk.fabricv4.model.ServiceProfileRequest; import com.equinix.sdk.fabricv4.model.ServiceProfileSearchRequest; import com.equinix.sdk.fabricv4.model.ServiceProfiles; @@ -221,6 +223,164 @@ public okhttp3.Call createServiceProfileAsync(@javax.annotation.Nonnull ServiceP localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for createServiceProfileAction + * @param serviceProfileId Service Profile UUID (required) + * @param serviceProfileActionRequest (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 + + + + + + + + + +
Response Details
Status Code Description Response Headers
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal Server Error -
+ */ + public okhttp3.Call createServiceProfileActionCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull ServiceProfileActionRequest serviceProfileActionRequest, 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 = serviceProfileActionRequest; + + // create path and map variables + String localVarPath = "/fabric/v4/serviceProfiles/{serviceProfileId}/actions" + .replace("{" + "serviceProfileId" + "}", localVarApiClient.escapeString(serviceProfileId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json; charset=UTF-8", + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "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 createServiceProfileActionValidateBeforeCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull ServiceProfileActionRequest serviceProfileActionRequest, final ApiCallback _callback) throws ApiException { + // verify the required parameter 'serviceProfileId' is set + if (serviceProfileId == null) { + throw new ApiException("Missing the required parameter 'serviceProfileId' when calling createServiceProfileAction(Async)"); + } + + // verify the required parameter 'serviceProfileActionRequest' is set + if (serviceProfileActionRequest == null) { + throw new ApiException("Missing the required parameter 'serviceProfileActionRequest' when calling createServiceProfileAction(Async)"); + } + + return createServiceProfileActionCall(serviceProfileId, serviceProfileActionRequest, _callback); + + } + + /** + * Profile Actions + * This API provides capability to accept/reject service profile update requests + * @param serviceProfileId Service Profile UUID (required) + * @param serviceProfileActionRequest (required) + * @return ServiceProfileActionResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Response Details
Status Code Description Response Headers
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal Server Error -
+ */ + public ServiceProfileActionResponse createServiceProfileAction(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull ServiceProfileActionRequest serviceProfileActionRequest) throws ApiException { + ApiResponse localVarResp = createServiceProfileActionWithHttpInfo(serviceProfileId, serviceProfileActionRequest); + return localVarResp.getData(); + } + + /** + * Profile Actions + * This API provides capability to accept/reject service profile update requests + * @param serviceProfileId Service Profile UUID (required) + * @param serviceProfileActionRequest (required) + * @return ApiResponse<ServiceProfileActionResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + + + + +
Response Details
Status Code Description Response Headers
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal Server Error -
+ */ + public ApiResponse createServiceProfileActionWithHttpInfo(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull ServiceProfileActionRequest serviceProfileActionRequest) throws ApiException { + okhttp3.Call localVarCall = createServiceProfileActionValidateBeforeCall(serviceProfileId, serviceProfileActionRequest, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Profile Actions (asynchronously) + * This API provides capability to accept/reject service profile update requests + * @param serviceProfileId Service Profile UUID (required) + * @param serviceProfileActionRequest (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 + + + + + + + + + +
Response Details
Status Code Description Response Headers
201 Successful operation -
400 Bad request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
500 Internal Server Error -
+ */ + public okhttp3.Call createServiceProfileActionAsync(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull ServiceProfileActionRequest serviceProfileActionRequest, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = createServiceProfileActionValidateBeforeCall(serviceProfileId, serviceProfileActionRequest, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for deleteServiceProfileByUuid * @param serviceProfileId Service Profile UUID (required) @@ -1162,7 +1322,6 @@ public okhttp3.Call searchServiceProfilesAsync(@javax.annotation.Nonnull Service /** * Build call for updateServiceProfileByUuid * @param serviceProfileId Service Profile UUID (required) - * @param ifMatch conditional request (required) * @param jsonPatchOperation (required) * @param _callback Callback for upload/download progress * @return Call to execute @@ -1176,11 +1335,10 @@ public okhttp3.Call searchServiceProfilesAsync(@javax.annotation.Nonnull Service 401 Unauthorized - 403 Forbidden - 404 Not Found - - 412 Precondition Failed - 500 Internal Server Error - */ - public okhttp3.Call updateServiceProfileByUuidCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull String ifMatch, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateServiceProfileByUuidCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { String basePath = null; // Operation Servers String[] localBasePaths = new String[] { }; @@ -1223,33 +1381,23 @@ public okhttp3.Call updateServiceProfileByUuidCall(@javax.annotation.Nonnull UUI localVarHeaderParams.put("Content-Type", localVarContentType); } - if (ifMatch != null) { - localVarHeaderParams.put("If-Match", localVarApiClient.parameterToString(ifMatch)); - } - - String[] localVarAuthNames = new String[] { "BearerAuth" }; return localVarApiClient.buildCall(basePath, localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } @SuppressWarnings("rawtypes") - private okhttp3.Call updateServiceProfileByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull String ifMatch, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { + private okhttp3.Call updateServiceProfileByUuidValidateBeforeCall(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { // verify the required parameter 'serviceProfileId' is set if (serviceProfileId == null) { throw new ApiException("Missing the required parameter 'serviceProfileId' when calling updateServiceProfileByUuid(Async)"); } - // verify the required parameter 'ifMatch' is set - if (ifMatch == null) { - throw new ApiException("Missing the required parameter 'ifMatch' when calling updateServiceProfileByUuid(Async)"); - } - // verify the required parameter 'jsonPatchOperation' is set if (jsonPatchOperation == null) { throw new ApiException("Missing the required parameter 'jsonPatchOperation' when calling updateServiceProfileByUuid(Async)"); } - return updateServiceProfileByUuidCall(serviceProfileId, ifMatch, jsonPatchOperation, _callback); + return updateServiceProfileByUuidCall(serviceProfileId, jsonPatchOperation, _callback); } @@ -1257,7 +1405,6 @@ private okhttp3.Call updateServiceProfileByUuidValidateBeforeCall(@javax.annotat * Update Profile * Update Service Profile by UUID * @param serviceProfileId Service Profile UUID (required) - * @param ifMatch conditional request (required) * @param jsonPatchOperation (required) * @return ServiceProfile * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -1270,12 +1417,11 @@ private okhttp3.Call updateServiceProfileByUuidValidateBeforeCall(@javax.annotat 401 Unauthorized - 403 Forbidden - 404 Not Found - - 412 Precondition Failed - 500 Internal Server Error - */ - public ServiceProfile updateServiceProfileByUuid(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull String ifMatch, @javax.annotation.Nonnull List jsonPatchOperation) throws ApiException { - ApiResponse localVarResp = updateServiceProfileByUuidWithHttpInfo(serviceProfileId, ifMatch, jsonPatchOperation); + public ServiceProfile updateServiceProfileByUuid(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull List jsonPatchOperation) throws ApiException { + ApiResponse localVarResp = updateServiceProfileByUuidWithHttpInfo(serviceProfileId, jsonPatchOperation); return localVarResp.getData(); } @@ -1283,7 +1429,6 @@ public ServiceProfile updateServiceProfileByUuid(@javax.annotation.Nonnull UUID * Update Profile * Update Service Profile by UUID * @param serviceProfileId Service Profile UUID (required) - * @param ifMatch conditional request (required) * @param jsonPatchOperation (required) * @return ApiResponse<ServiceProfile> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -1296,12 +1441,11 @@ public ServiceProfile updateServiceProfileByUuid(@javax.annotation.Nonnull UUID 401 Unauthorized - 403 Forbidden - 404 Not Found - - 412 Precondition Failed - 500 Internal Server Error - */ - public ApiResponse updateServiceProfileByUuidWithHttpInfo(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull String ifMatch, @javax.annotation.Nonnull List jsonPatchOperation) throws ApiException { - okhttp3.Call localVarCall = updateServiceProfileByUuidValidateBeforeCall(serviceProfileId, ifMatch, jsonPatchOperation, null); + public ApiResponse updateServiceProfileByUuidWithHttpInfo(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull List jsonPatchOperation) throws ApiException { + okhttp3.Call localVarCall = updateServiceProfileByUuidValidateBeforeCall(serviceProfileId, jsonPatchOperation, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1310,7 +1454,6 @@ public ApiResponse updateServiceProfileByUuidWithHttpInfo(@javax * Update Profile (asynchronously) * Update Service Profile by UUID * @param serviceProfileId Service Profile UUID (required) - * @param ifMatch conditional request (required) * @param jsonPatchOperation (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -1324,13 +1467,12 @@ public ApiResponse updateServiceProfileByUuidWithHttpInfo(@javax 401 Unauthorized - 403 Forbidden - 404 Not Found - - 412 Precondition Failed - 500 Internal Server Error - */ - public okhttp3.Call updateServiceProfileByUuidAsync(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull String ifMatch, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { + public okhttp3.Call updateServiceProfileByUuidAsync(@javax.annotation.Nonnull UUID serviceProfileId, @javax.annotation.Nonnull List jsonPatchOperation, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = updateServiceProfileByUuidValidateBeforeCall(serviceProfileId, ifMatch, jsonPatchOperation, _callback); + okhttp3.Call localVarCall = updateServiceProfileByUuidValidateBeforeCall(serviceProfileId, jsonPatchOperation, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/StreamAlertRulesApi.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/StreamAlertRulesApi.java index d499a941..29479e0b 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/StreamAlertRulesApi.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/api/StreamAlertRulesApi.java @@ -314,7 +314,7 @@ private okhttp3.Call deleteStreamAlertRuleByUuidValidateBeforeCall(@javax.annota } /** - * Update Stream Alert Rules + * Delete Stream Alert Rules * This API provides capability to delete a user's stream alert rule * @param streamId Stream UUID (required) * @param alertRuleId alert rule UUID (required) @@ -338,7 +338,7 @@ public StreamAlertRule deleteStreamAlertRuleByUuid(@javax.annotation.Nonnull UUI } /** - * Update Stream Alert Rules + * Delete Stream Alert Rules * This API provides capability to delete a user's stream alert rule * @param streamId Stream UUID (required) * @param alertRuleId alert rule UUID (required) @@ -363,7 +363,7 @@ public ApiResponse deleteStreamAlertRuleByUuidWithHttpInfo(@jav } /** - * Update Stream Alert Rules (asynchronously) + * Delete Stream Alert Rules (asynchronously) * This API provides capability to delete a user's stream alert rule * @param streamId Stream UUID (required) * @param alertRuleId alert rule UUID (required) diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPoint.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPoint.java index 2b128ed5..5a2984bb 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPoint.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPoint.java @@ -26,7 +26,6 @@ import com.equinix.sdk.fabricv4.model.SimplifiedServiceProfile; import com.equinix.sdk.fabricv4.model.VirtualDevice; import com.equinix.sdk.fabricv4.model.VirtualNetwork; -import com.equinix.sdk.fabricv4.model.VpicInterface; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; import com.google.gson.annotations.SerializedName; @@ -144,11 +143,6 @@ public class AccessPoint { @javax.annotation.Nullable private MetalInterconnection interconnection; - public static final String SERIALIZED_NAME_VPIC_INTERFACE = "vpic_interface"; - @SerializedName(SERIALIZED_NAME_VPIC_INTERFACE) - @javax.annotation.Nullable - private VpicInterface vpicInterface; - /** * E-Tree network connection role */ @@ -513,25 +507,6 @@ public void setInterconnection(@javax.annotation.Nullable MetalInterconnection i } - public AccessPoint vpicInterface(@javax.annotation.Nullable VpicInterface vpicInterface) { - this.vpicInterface = vpicInterface; - return this; - } - - /** - * Get vpicInterface - * @return vpicInterface - */ - @javax.annotation.Nullable - public VpicInterface getVpicInterface() { - return vpicInterface; - } - - public void setVpicInterface(@javax.annotation.Nullable VpicInterface vpicInterface) { - this.vpicInterface = vpicInterface; - } - - public AccessPoint role(@javax.annotation.Nullable RoleEnum role) { this.role = role; return this; @@ -621,14 +596,13 @@ public boolean equals(Object o) { Objects.equals(this.providerConnectionId, accessPoint.providerConnectionId) && Objects.equals(this.virtualNetwork, accessPoint.virtualNetwork) && Objects.equals(this.interconnection, accessPoint.interconnection) && - Objects.equals(this.vpicInterface, accessPoint.vpicInterface) && Objects.equals(this.role, accessPoint.role)&& Objects.equals(this.additionalProperties, accessPoint.additionalProperties); } @Override public int hashCode() { - return Objects.hash(type, account, location, port, profile, router, linkProtocol, virtualDevice, _interface, network, sellerRegion, peeringType, authenticationKey, providerConnectionId, virtualNetwork, interconnection, vpicInterface, role, additionalProperties); + return Objects.hash(type, account, location, port, profile, router, linkProtocol, virtualDevice, _interface, network, sellerRegion, peeringType, authenticationKey, providerConnectionId, virtualNetwork, interconnection, role, additionalProperties); } @Override @@ -651,7 +625,6 @@ public String toString() { sb.append(" providerConnectionId: ").append(toIndentedString(providerConnectionId)).append("\n"); sb.append(" virtualNetwork: ").append(toIndentedString(virtualNetwork)).append("\n"); sb.append(" interconnection: ").append(toIndentedString(interconnection)).append("\n"); - sb.append(" vpicInterface: ").append(toIndentedString(vpicInterface)).append("\n"); sb.append(" role: ").append(toIndentedString(role)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -675,7 +648,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("type", "account", "location", "port", "profile", "router", "linkProtocol", "virtualDevice", "interface", "network", "sellerRegion", "peeringType", "authenticationKey", "providerConnectionId", "virtualNetwork", "interconnection", "vpic_interface", "role")); + openapiFields = new HashSet(Arrays.asList("type", "account", "location", "port", "profile", "router", "linkProtocol", "virtualDevice", "interface", "network", "sellerRegion", "peeringType", "authenticationKey", "providerConnectionId", "virtualNetwork", "interconnection", "role")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); @@ -755,10 +728,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("interconnection") != null && !jsonObj.get("interconnection").isJsonNull()) { MetalInterconnection.validateJsonElement(jsonObj.get("interconnection")); } - // validate the optional field `vpic_interface` - if (jsonObj.get("vpic_interface") != null && !jsonObj.get("vpic_interface").isJsonNull()) { - VpicInterface.validateJsonElement(jsonObj.get("vpic_interface")); - } if ((jsonObj.get("role") != null && !jsonObj.get("role").isJsonNull()) && !jsonObj.get("role").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `role` to be a primitive type in the JSON string but got `%s`", jsonObj.get("role").toString())); } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPointType.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPointType.java index 9fabf93e..d1b05510 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPointType.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AccessPointType.java @@ -47,7 +47,9 @@ public enum AccessPointType { METAL_NETWORK("METAL_NETWORK"), - VPIC_INTERFACE("VPIC_INTERFACE"); + VPIC_INTERFACE("VPIC_INTERFACE"), + + APP_LINK("APP_LINK"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java index 4a87dd55..d0ad5665 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AddOperation.java @@ -248,6 +248,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `op` OpEnum.validateJsonElement(jsonObj.get("op")); + // check op value matches "add" for AddOperation + String opValue = jsonObj.get("op").getAsString(); + if (!"add".equals(opValue)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='add' for AddOperation but got `%s`", opValue)); + } if (!jsonObj.get("path").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agent.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agent.java new file mode 100644 index 00000000..9ec1c763 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agent.java @@ -0,0 +1,316 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Agent + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class Agent { + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private UUID uuid; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public Agent() { + } + + public Agent uuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + return this; + } + + /** + * Agent Uuid + * @return uuid + */ + @javax.annotation.Nullable + public UUID getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + } + + + public Agent type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + /** + * 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 Agent instance itself + */ + public Agent 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; + } + Agent agent = (Agent) o; + return Objects.equals(this.uuid, agent.uuid) && + Objects.equals(this.type, agent.type)&& + Objects.equals(this.additionalProperties, agent.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Agent {\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).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(Arrays.asList("uuid", "type")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Agent + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Agent.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in Agent is not found in the empty JSON string", Agent.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Agent.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Agent' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(Agent.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, Agent 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public Agent read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + Agent 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(Locale.ROOT, "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 Agent given an JSON string + * + * @param jsonString JSON string + * @return An instance of Agent + * @throws IOException if the JSON string is invalid with respect to Agent + */ + public static Agent fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Agent.class); + } + + /** + * Convert an instance of Agent to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivities.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivities.java new file mode 100644 index 00000000..2d186dae --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivities.java @@ -0,0 +1,466 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.Agent; +import com.equinix.sdk.fabricv4.model.AgentActivitiesMetadata; +import com.equinix.sdk.fabricv4.model.Changelog; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Agent Activities object + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentActivities { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + @javax.annotation.Nullable + private UUID href; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private UUID uuid; + + public static final String SERIALIZED_NAME_AGENT = "agent"; + @SerializedName(SERIALIZED_NAME_AGENT) + @javax.annotation.Nullable + private Agent agent; + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private String status; + + public static final String SERIALIZED_NAME_METADATA = "metadata"; + @SerializedName(SERIALIZED_NAME_METADATA) + @javax.annotation.Nullable + private AgentActivitiesMetadata metadata; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + @javax.annotation.Nullable + private Changelog changeLog; + + public AgentActivities() { + } + + public AgentActivities( + UUID uuid + ) { + this(); + this.uuid = uuid; + } + + public AgentActivities href(@javax.annotation.Nullable UUID href) { + this.href = href; + return this; + } + + /** + * Agent Activities URI + * @return href + */ + @javax.annotation.Nullable + public UUID getHref() { + return href; + } + + public void setHref(@javax.annotation.Nullable UUID href) { + this.href = href; + } + + + public AgentActivities type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + /** + * Equinix-assigned agent operation identifier + * @return uuid + */ + @javax.annotation.Nullable + public UUID getUuid() { + return uuid; + } + + + + public AgentActivities agent(@javax.annotation.Nullable Agent agent) { + this.agent = agent; + return this; + } + + /** + * Get agent + * @return agent + */ + @javax.annotation.Nullable + public Agent getAgent() { + return agent; + } + + public void setAgent(@javax.annotation.Nullable Agent agent) { + this.agent = agent; + } + + + public AgentActivities status(@javax.annotation.Nullable String status) { + this.status = status; + return this; + } + + /** + * Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED + * @return status + */ + @javax.annotation.Nullable + public String getStatus() { + return status; + } + + public void setStatus(@javax.annotation.Nullable String status) { + this.status = status; + } + + + public AgentActivities metadata(@javax.annotation.Nullable AgentActivitiesMetadata metadata) { + this.metadata = metadata; + return this; + } + + /** + * Get metadata + * @return metadata + */ + @javax.annotation.Nullable + public AgentActivitiesMetadata getMetadata() { + return metadata; + } + + public void setMetadata(@javax.annotation.Nullable AgentActivitiesMetadata metadata) { + this.metadata = metadata; + } + + + public AgentActivities changeLog(@javax.annotation.Nullable Changelog changeLog) { + this.changeLog = changeLog; + return this; + } + + /** + * Get changeLog + * @return changeLog + */ + @javax.annotation.Nullable + public Changelog getChangeLog() { + return changeLog; + } + + public void setChangeLog(@javax.annotation.Nullable 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 AgentActivities instance itself + */ + public AgentActivities 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; + } + AgentActivities agentActivities = (AgentActivities) o; + return Objects.equals(this.href, agentActivities.href) && + Objects.equals(this.type, agentActivities.type) && + Objects.equals(this.uuid, agentActivities.uuid) && + Objects.equals(this.agent, agentActivities.agent) && + Objects.equals(this.status, agentActivities.status) && + Objects.equals(this.metadata, agentActivities.metadata) && + Objects.equals(this.changeLog, agentActivities.changeLog)&& + Objects.equals(this.additionalProperties, agentActivities.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, agent, status, metadata, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentActivities {\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(" agent: ").append(toIndentedString(agent)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).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(Arrays.asList("href", "type", "uuid", "agent", "status", "metadata", "changeLog")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentActivities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentActivities.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentActivities is not found in the empty JSON string", AgentActivities.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + // validate the optional field `agent` + if (jsonObj.get("agent") != null && !jsonObj.get("agent").isJsonNull()) { + Agent.validateJsonElement(jsonObj.get("agent")); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `metadata` + if (jsonObj.get("metadata") != null && !jsonObj.get("metadata").isJsonNull()) { + AgentActivitiesMetadata.validateJsonElement(jsonObj.get("metadata")); + } + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonElement(jsonObj.get("changeLog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentActivities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentActivities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentActivities.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentActivities 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentActivities read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentActivities 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(Locale.ROOT, "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 AgentActivities given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentActivities + * @throws IOException if the JSON string is invalid with respect to AgentActivities + */ + public static AgentActivities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentActivities.class); + } + + /** + * Convert an instance of AgentActivities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivitiesMetadata.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivitiesMetadata.java new file mode 100644 index 00000000..6bc68dfe --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentActivitiesMetadata.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.ChatMessage; +import com.equinix.sdk.fabricv4.model.ToolCallInformationInner; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentActivitiesMetadata + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentActivitiesMetadata { + public static final String SERIALIZED_NAME_CHAT_MESSAGE = "chatMessage"; + @SerializedName(SERIALIZED_NAME_CHAT_MESSAGE) + @javax.annotation.Nullable + private ChatMessage chatMessage; + + public static final String SERIALIZED_NAME_TOOL_CALL_INFORMATION = "toolCallInformation"; + @SerializedName(SERIALIZED_NAME_TOOL_CALL_INFORMATION) + @javax.annotation.Nullable + private List toolCallInformation = new ArrayList<>(); + + public AgentActivitiesMetadata() { + } + + public AgentActivitiesMetadata chatMessage(@javax.annotation.Nullable ChatMessage chatMessage) { + this.chatMessage = chatMessage; + return this; + } + + /** + * Get chatMessage + * @return chatMessage + */ + @javax.annotation.Nullable + public ChatMessage getChatMessage() { + return chatMessage; + } + + public void setChatMessage(@javax.annotation.Nullable ChatMessage chatMessage) { + this.chatMessage = chatMessage; + } + + + public AgentActivitiesMetadata toolCallInformation(@javax.annotation.Nullable List toolCallInformation) { + this.toolCallInformation = toolCallInformation; + return this; + } + + public AgentActivitiesMetadata addToolCallInformationItem(ToolCallInformationInner toolCallInformationItem) { + if (this.toolCallInformation == null) { + this.toolCallInformation = new ArrayList<>(); + } + this.toolCallInformation.add(toolCallInformationItem); + return this; + } + + /** + * List of tools called during the agent operation + * @return toolCallInformation + */ + @javax.annotation.Nullable + public List getToolCallInformation() { + return toolCallInformation; + } + + public void setToolCallInformation(@javax.annotation.Nullable List toolCallInformation) { + this.toolCallInformation = toolCallInformation; + } + + /** + * 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 AgentActivitiesMetadata instance itself + */ + public AgentActivitiesMetadata 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; + } + AgentActivitiesMetadata agentActivitiesMetadata = (AgentActivitiesMetadata) o; + return Objects.equals(this.chatMessage, agentActivitiesMetadata.chatMessage) && + Objects.equals(this.toolCallInformation, agentActivitiesMetadata.toolCallInformation)&& + Objects.equals(this.additionalProperties, agentActivitiesMetadata.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(chatMessage, toolCallInformation, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentActivitiesMetadata {\n"); + sb.append(" chatMessage: ").append(toIndentedString(chatMessage)).append("\n"); + sb.append(" toolCallInformation: ").append(toIndentedString(toolCallInformation)).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(Arrays.asList("chatMessage", "toolCallInformation")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentActivitiesMetadata + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentActivitiesMetadata.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentActivitiesMetadata is not found in the empty JSON string", AgentActivitiesMetadata.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `chatMessage` + if (jsonObj.get("chatMessage") != null && !jsonObj.get("chatMessage").isJsonNull()) { + ChatMessage.validateJsonElement(jsonObj.get("chatMessage")); + } + if (jsonObj.get("toolCallInformation") != null && !jsonObj.get("toolCallInformation").isJsonNull()) { + JsonArray jsonArraytoolCallInformation = jsonObj.getAsJsonArray("toolCallInformation"); + if (jsonArraytoolCallInformation != null) { + // ensure the json data is an array + if (!jsonObj.get("toolCallInformation").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `toolCallInformation` to be an array in the JSON string but got `%s`", jsonObj.get("toolCallInformation").toString())); + } + + // validate the optional field `toolCallInformation` (array) + for (int i = 0; i < jsonArraytoolCallInformation.size(); i++) { + ToolCallInformationInner.validateJsonElement(jsonArraytoolCallInformation.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentActivitiesMetadata.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentActivitiesMetadata' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentActivitiesMetadata.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentActivitiesMetadata 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentActivitiesMetadata read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentActivitiesMetadata 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(Locale.ROOT, "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 AgentActivitiesMetadata given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentActivitiesMetadata + * @throws IOException if the JSON string is invalid with respect to AgentActivitiesMetadata + */ + public static AgentActivitiesMetadata fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentActivitiesMetadata.class); + } + + /** + * Convert an instance of AgentActivitiesMetadata to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentDefinition.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentDefinition.java new file mode 100644 index 00000000..56029825 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentDefinition.java @@ -0,0 +1,286 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentDefinition + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentDefinition { + public static final String SERIALIZED_NAME_URL = "url"; + @SerializedName(SERIALIZED_NAME_URL) + @javax.annotation.Nullable + private String url; + + public AgentDefinition() { + } + + public AgentDefinition url(@javax.annotation.Nullable String url) { + this.url = url; + return this; + } + + /** + * Agent Template ReadMe (.md) Definition + * @return url + */ + @javax.annotation.Nullable + public String getUrl() { + return url; + } + + public void setUrl(@javax.annotation.Nullable String url) { + this.url = url; + } + + /** + * 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 AgentDefinition instance itself + */ + public AgentDefinition 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; + } + AgentDefinition agentDefinition = (AgentDefinition) o; + return Objects.equals(this.url, agentDefinition.url)&& + Objects.equals(this.additionalProperties, agentDefinition.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(url, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentDefinition {\n"); + sb.append(" url: ").append(toIndentedString(url)).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(Arrays.asList("url")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentDefinition + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentDefinition.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentDefinition is not found in the empty JSON string", AgentDefinition.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("url") != null && !jsonObj.get("url").isJsonNull()) && !jsonObj.get("url").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("url").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentDefinition.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentDefinition' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentDefinition.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentDefinition 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentDefinition read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentDefinition 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(Locale.ROOT, "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 AgentDefinition given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentDefinition + * @throws IOException if the JSON string is invalid with respect to AgentDefinition + */ + public static AgentDefinition fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentDefinition.class); + } + + /** + * Convert an instance of AgentDefinition to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetActivities.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetActivities.java new file mode 100644 index 00000000..3ea5bd7f --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetActivities.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.AgentActivities; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentGetActivities + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentGetActivities { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public AgentGetActivities() { + } + + public AgentGetActivities pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public AgentGetActivities data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public AgentGetActivities addDataItem(AgentActivities dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Data returned from the API call. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 AgentGetActivities instance itself + */ + public AgentGetActivities 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; + } + AgentGetActivities agentGetActivities = (AgentGetActivities) o; + return Objects.equals(this.pagination, agentGetActivities.pagination) && + Objects.equals(this.data, agentGetActivities.data)&& + Objects.equals(this.additionalProperties, agentGetActivities.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentGetActivities {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentGetActivities + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentGetActivities.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentGetActivities is not found in the empty JSON string", AgentGetActivities.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + AgentActivities.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentGetActivities.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentGetActivities' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentGetActivities.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentGetActivities 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentGetActivities read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentGetActivities 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(Locale.ROOT, "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 AgentGetActivities given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentGetActivities + * @throws IOException if the JSON string is invalid with respect to AgentGetActivities + */ + public static AgentGetActivities fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentGetActivities.class); + } + + /** + * Convert an instance of AgentGetActivities to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetAllResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetAllResponse.java new file mode 100644 index 00000000..2eb138f5 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentGetAllResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.Agents; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentGetAllResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentGetAllResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public AgentGetAllResponse() { + } + + public AgentGetAllResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public AgentGetAllResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public AgentGetAllResponse addDataItem(Agents dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Data returned from the API call. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 AgentGetAllResponse instance itself + */ + public AgentGetAllResponse 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; + } + AgentGetAllResponse agentGetAllResponse = (AgentGetAllResponse) o; + return Objects.equals(this.pagination, agentGetAllResponse.pagination) && + Objects.equals(this.data, agentGetAllResponse.data)&& + Objects.equals(this.additionalProperties, agentGetAllResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentGetAllResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentGetAllResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentGetAllResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentGetAllResponse is not found in the empty JSON string", AgentGetAllResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + Agents.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentGetAllResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentGetAllResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentGetAllResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentGetAllResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentGetAllResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentGetAllResponse 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(Locale.ROOT, "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 AgentGetAllResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentGetAllResponse + * @throws IOException if the JSON string is invalid with respect to AgentGetAllResponse + */ + public static AgentGetAllResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentGetAllResponse.class); + } + + /** + * Convert an instance of AgentGetAllResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPatchRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPatchRequest.java new file mode 100644 index 00000000..c95e62bc --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPatchRequest.java @@ -0,0 +1,348 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Update Agent + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentPatchRequest { + public static final String SERIALIZED_NAME_PATH = "path"; + @SerializedName(SERIALIZED_NAME_PATH) + @javax.annotation.Nonnull + private String path; + + public static final String SERIALIZED_NAME_OP = "op"; + @SerializedName(SERIALIZED_NAME_OP) + @javax.annotation.Nonnull + private String op; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + @javax.annotation.Nullable + private Object value = null; + + public AgentPatchRequest() { + } + + public AgentPatchRequest path(@javax.annotation.Nonnull String path) { + this.path = path; + return this; + } + + /** + * path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt + * @return path + */ + @javax.annotation.Nonnull + public String getPath() { + return path; + } + + public void setPath(@javax.annotation.Nonnull String path) { + this.path = path; + } + + + public AgentPatchRequest op(@javax.annotation.Nonnull 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(@javax.annotation.Nonnull String op) { + this.op = op; + } + + + public AgentPatchRequest value(@javax.annotation.Nullable Object value) { + this.value = value; + return this; + } + + /** + * new value for updated parameter + * @return value + */ + @javax.annotation.Nullable + public Object getValue() { + return value; + } + + public void setValue(@javax.annotation.Nullable 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 AgentPatchRequest instance itself + */ + public AgentPatchRequest 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; + } + AgentPatchRequest agentPatchRequest = (AgentPatchRequest) o; + return Objects.equals(this.path, agentPatchRequest.path) && + Objects.equals(this.op, agentPatchRequest.op) && + Objects.equals(this.value, agentPatchRequest.value)&& + Objects.equals(this.additionalProperties, agentPatchRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(path, op, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentPatchRequest {\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" op: ").append(toIndentedString(op)).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(Arrays.asList("path", "op", "value")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(Arrays.asList("path", "op", "value")); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentPatchRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentPatchRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentPatchRequest is not found in the empty JSON string", AgentPatchRequest.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AgentPatchRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("path").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); + } + if (!jsonObj.get("op").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `op` to be a primitive type in the JSON string but got `%s`", jsonObj.get("op").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentPatchRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentPatchRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentPatchRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentPatchRequest 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentPatchRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentPatchRequest 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(Locale.ROOT, "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 AgentPatchRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentPatchRequest + * @throws IOException if the JSON string is invalid with respect to AgentPatchRequest + */ + public static AgentPatchRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentPatchRequest.class); + } + + /** + * Convert an instance of AgentPatchRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPostRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPostRequest.java new file mode 100644 index 00000000..e4be85a3 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentPostRequest.java @@ -0,0 +1,466 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.AgentTemplate; +import com.equinix.sdk.fabricv4.model.ModelConfiguration; +import com.equinix.sdk.fabricv4.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 java.util.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Create Agent + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentPostRequest { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nonnull + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + @javax.annotation.Nonnull + private Project project; + + public static final String SERIALIZED_NAME_AGENT_TEMPLATE = "agentTemplate"; + @SerializedName(SERIALIZED_NAME_AGENT_TEMPLATE) + @javax.annotation.Nonnull + private AgentTemplate agentTemplate; + + public static final String SERIALIZED_NAME_CONFIGURATION = "configuration"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION) + @javax.annotation.Nullable + private ModelConfiguration _configuration; + + public AgentPostRequest() { + } + + public AgentPostRequest type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Get type + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + + public AgentPostRequest name(@javax.annotation.Nonnull String name) { + this.name = name; + return this; + } + + /** + * Customer-provided agent name + * @return name + */ + @javax.annotation.Nonnull + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nonnull String name) { + this.name = name; + } + + + public AgentPostRequest description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Customer-provided agent description + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public AgentPostRequest enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Customer-provided agent enabled status + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public AgentPostRequest project(@javax.annotation.Nonnull Project project) { + this.project = project; + return this; + } + + /** + * Get project + * @return project + */ + @javax.annotation.Nonnull + public Project getProject() { + return project; + } + + public void setProject(@javax.annotation.Nonnull Project project) { + this.project = project; + } + + + public AgentPostRequest agentTemplate(@javax.annotation.Nonnull AgentTemplate agentTemplate) { + this.agentTemplate = agentTemplate; + return this; + } + + /** + * Get agentTemplate + * @return agentTemplate + */ + @javax.annotation.Nonnull + public AgentTemplate getAgentTemplate() { + return agentTemplate; + } + + public void setAgentTemplate(@javax.annotation.Nonnull AgentTemplate agentTemplate) { + this.agentTemplate = agentTemplate; + } + + + public AgentPostRequest _configuration(@javax.annotation.Nullable ModelConfiguration _configuration) { + this._configuration = _configuration; + return this; + } + + /** + * Get _configuration + * @return _configuration + */ + @javax.annotation.Nullable + public ModelConfiguration getConfiguration() { + return _configuration; + } + + public void setConfiguration(@javax.annotation.Nullable ModelConfiguration _configuration) { + this._configuration = _configuration; + } + + /** + * 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 AgentPostRequest instance itself + */ + public AgentPostRequest 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; + } + AgentPostRequest agentPostRequest = (AgentPostRequest) o; + return Objects.equals(this.type, agentPostRequest.type) && + Objects.equals(this.name, agentPostRequest.name) && + Objects.equals(this.description, agentPostRequest.description) && + Objects.equals(this.enabled, agentPostRequest.enabled) && + Objects.equals(this.project, agentPostRequest.project) && + Objects.equals(this.agentTemplate, agentPostRequest.agentTemplate) && + Objects.equals(this._configuration, agentPostRequest._configuration)&& + Objects.equals(this.additionalProperties, agentPostRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, name, description, enabled, project, agentTemplate, _configuration, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentPostRequest {\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(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append(" agentTemplate: ").append(toIndentedString(agentTemplate)).append("\n"); + sb.append(" _configuration: ").append(toIndentedString(_configuration)).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(Arrays.asList("type", "name", "description", "enabled", "project", "agentTemplate", "configuration")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(Arrays.asList("type", "name", "project", "agentTemplate")); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentPostRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentPostRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentPostRequest is not found in the empty JSON string", AgentPostRequest.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : AgentPostRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "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.validateJsonElement(jsonObj.get("project")); + // validate the required field `agentTemplate` + AgentTemplate.validateJsonElement(jsonObj.get("agentTemplate")); + // validate the optional field `configuration` + if (jsonObj.get("configuration") != null && !jsonObj.get("configuration").isJsonNull()) { + ModelConfiguration.validateJsonElement(jsonObj.get("configuration")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentPostRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentPostRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentPostRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentPostRequest 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentPostRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentPostRequest 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(Locale.ROOT, "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 AgentPostRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentPostRequest + * @throws IOException if the JSON string is invalid with respect to AgentPostRequest + */ + public static AgentPostRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentPostRequest.class); + } + + /** + * Convert an instance of AgentPostRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplate.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplate.java new file mode 100644 index 00000000..e0cf5d6b --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplate.java @@ -0,0 +1,286 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentTemplate + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentTemplate { + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private String uuid; + + public AgentTemplate() { + } + + public AgentTemplate uuid(@javax.annotation.Nullable String uuid) { + this.uuid = uuid; + return this; + } + + /** + * Agent Template Uuid + * @return uuid + */ + @javax.annotation.Nullable + public String getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable String uuid) { + this.uuid = uuid; + } + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. + * If the property does not already exist, create it otherwise replace it. + * + * @param key name of the property + * @param value value of the property + * @return the AgentTemplate instance itself + */ + public AgentTemplate 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; + } + AgentTemplate agentTemplate = (AgentTemplate) o; + return Objects.equals(this.uuid, agentTemplate.uuid)&& + Objects.equals(this.additionalProperties, agentTemplate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentTemplate {\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + + + public static HashSet openapiFields; + public static HashSet openapiRequiredFields; + + static { + // a set of all properties/fields (JSON key names) + openapiFields = new HashSet(Arrays.asList("uuid")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentTemplate + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentTemplate.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentTemplate is not found in the empty JSON string", AgentTemplate.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentTemplate.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentTemplate' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentTemplate.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentTemplate 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentTemplate read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentTemplate 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(Locale.ROOT, "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 AgentTemplate given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentTemplate + * @throws IOException if the JSON string is invalid with respect to AgentTemplate + */ + public static AgentTemplate fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentTemplate.class); + } + + /** + * Convert an instance of AgentTemplate to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplateGetAllResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplateGetAllResponse.java new file mode 100644 index 00000000..292867f4 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplateGetAllResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.AgentTemplates; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AgentTemplateGetAllResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentTemplateGetAllResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public AgentTemplateGetAllResponse() { + } + + public AgentTemplateGetAllResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public AgentTemplateGetAllResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public AgentTemplateGetAllResponse addDataItem(AgentTemplates dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * Data returned from the API call. + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 AgentTemplateGetAllResponse instance itself + */ + public AgentTemplateGetAllResponse 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; + } + AgentTemplateGetAllResponse agentTemplateGetAllResponse = (AgentTemplateGetAllResponse) o; + return Objects.equals(this.pagination, agentTemplateGetAllResponse.pagination) && + Objects.equals(this.data, agentTemplateGetAllResponse.data)&& + Objects.equals(this.additionalProperties, agentTemplateGetAllResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentTemplateGetAllResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentTemplateGetAllResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentTemplateGetAllResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentTemplateGetAllResponse is not found in the empty JSON string", AgentTemplateGetAllResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + AgentTemplates.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentTemplateGetAllResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentTemplateGetAllResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentTemplateGetAllResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentTemplateGetAllResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentTemplateGetAllResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentTemplateGetAllResponse 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(Locale.ROOT, "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 AgentTemplateGetAllResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentTemplateGetAllResponse + * @throws IOException if the JSON string is invalid with respect to AgentTemplateGetAllResponse + */ + public static AgentTemplateGetAllResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentTemplateGetAllResponse.class); + } + + /** + * Convert an instance of AgentTemplateGetAllResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplates.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplates.java new file mode 100644 index 00000000..c0acfb7c --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/AgentTemplates.java @@ -0,0 +1,584 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.AgentDefinition; +import com.equinix.sdk.fabricv4.model.Changelog; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Agent Template object + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class AgentTemplates { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + @javax.annotation.Nullable + private UUID href; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private UUID uuid; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + /** + * Agent state + */ + @JsonAdapter(StateEnum.Adapter.class) + public enum StateEnum { + PROVISIONING("PROVISIONING"), + + PROVISIONED("PROVISIONED"), + + REPROVISIONING("REPROVISIONING"), + + DEPROVISIONING("DEPROVISIONING"), + + DEPROVISIONED("DEPROVISIONED"), + + FAILED("FAILED"); + + private String value; + + StateEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StateEnum fromValue(String value) { + for (StateEnum b : StateEnum.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 StateEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StateEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StateEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StateEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATE = "state"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private StateEnum state; + + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_AGENT_DEFINITION = "agentDefinition"; + @SerializedName(SERIALIZED_NAME_AGENT_DEFINITION) + @javax.annotation.Nullable + private AgentDefinition agentDefinition; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + @javax.annotation.Nullable + private Changelog changeLog; + + public AgentTemplates() { + } + + public AgentTemplates href(@javax.annotation.Nullable UUID href) { + this.href = href; + return this; + } + + /** + * Agent Template URI + * @return href + */ + @javax.annotation.Nullable + public UUID getHref() { + return href; + } + + public void setHref(@javax.annotation.Nullable UUID href) { + this.href = href; + } + + + public AgentTemplates type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public AgentTemplates uuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + return this; + } + + /** + * Equinix-assigned access point identifier + * @return uuid + */ + @javax.annotation.Nullable + public UUID getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + } + + + public AgentTemplates name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Equinix-provided agent template name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public AgentTemplates description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Equinix-provided agent template description + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public AgentTemplates state(@javax.annotation.Nullable StateEnum state) { + this.state = state; + return this; + } + + /** + * Agent state + * @return state + */ + @javax.annotation.Nullable + public StateEnum getState() { + return state; + } + + public void setState(@javax.annotation.Nullable StateEnum state) { + this.state = state; + } + + + public AgentTemplates enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Equinix-provided agent template enabled status + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public AgentTemplates agentDefinition(@javax.annotation.Nullable AgentDefinition agentDefinition) { + this.agentDefinition = agentDefinition; + return this; + } + + /** + * Get agentDefinition + * @return agentDefinition + */ + @javax.annotation.Nullable + public AgentDefinition getAgentDefinition() { + return agentDefinition; + } + + public void setAgentDefinition(@javax.annotation.Nullable AgentDefinition agentDefinition) { + this.agentDefinition = agentDefinition; + } + + + public AgentTemplates changeLog(@javax.annotation.Nullable Changelog changeLog) { + this.changeLog = changeLog; + return this; + } + + /** + * Get changeLog + * @return changeLog + */ + @javax.annotation.Nullable + public Changelog getChangeLog() { + return changeLog; + } + + public void setChangeLog(@javax.annotation.Nullable 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 AgentTemplates instance itself + */ + public AgentTemplates 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; + } + AgentTemplates agentTemplates = (AgentTemplates) o; + return Objects.equals(this.href, agentTemplates.href) && + Objects.equals(this.type, agentTemplates.type) && + Objects.equals(this.uuid, agentTemplates.uuid) && + Objects.equals(this.name, agentTemplates.name) && + Objects.equals(this.description, agentTemplates.description) && + Objects.equals(this.state, agentTemplates.state) && + Objects.equals(this.enabled, agentTemplates.enabled) && + Objects.equals(this.agentDefinition, agentTemplates.agentDefinition) && + Objects.equals(this.changeLog, agentTemplates.changeLog)&& + Objects.equals(this.additionalProperties, agentTemplates.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, state, enabled, agentDefinition, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AgentTemplates {\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(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" agentDefinition: ").append(toIndentedString(agentDefinition)).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(Arrays.asList("href", "type", "uuid", "name", "description", "state", "enabled", "agentDefinition", "changeLog")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to AgentTemplates + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!AgentTemplates.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in AgentTemplates is not found in the empty JSON string", AgentTemplates.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) && !jsonObj.get("state").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("state").toString())); + } + // validate the optional field `state` + if (jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) { + StateEnum.validateJsonElement(jsonObj.get("state")); + } + // validate the optional field `agentDefinition` + if (jsonObj.get("agentDefinition") != null && !jsonObj.get("agentDefinition").isJsonNull()) { + AgentDefinition.validateJsonElement(jsonObj.get("agentDefinition")); + } + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonElement(jsonObj.get("changeLog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!AgentTemplates.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'AgentTemplates' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(AgentTemplates.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, AgentTemplates 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public AgentTemplates read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + AgentTemplates 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(Locale.ROOT, "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 AgentTemplates given an JSON string + * + * @param jsonString JSON string + * @return An instance of AgentTemplates + * @throws IOException if the JSON string is invalid with respect to AgentTemplates + */ + public static AgentTemplates fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, AgentTemplates.class); + } + + /** + * Convert an instance of AgentTemplates to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agents.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agents.java new file mode 100644 index 00000000..848e1503 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Agents.java @@ -0,0 +1,646 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.AgentTemplate; +import com.equinix.sdk.fabricv4.model.Changelog; +import com.equinix.sdk.fabricv4.model.ModelConfiguration; +import com.equinix.sdk.fabricv4.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 java.net.URI; +import java.util.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Agent object + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class Agents { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + @javax.annotation.Nullable + private URI href; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private UUID uuid; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + /** + * Agent state + */ + @JsonAdapter(StateEnum.Adapter.class) + public enum StateEnum { + PROVISIONING("PROVISIONING"), + + PROVISIONED("PROVISIONED"), + + REPROVISIONING("REPROVISIONING"), + + DEPROVISIONING("DEPROVISIONING"), + + DEPROVISIONED("DEPROVISIONED"), + + FAILED("FAILED"); + + private String value; + + StateEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static StateEnum fromValue(String value) { + for (StateEnum b : StateEnum.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 StateEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public StateEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return StateEnum.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StateEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATE = "state"; + @SerializedName(SERIALIZED_NAME_STATE) + @javax.annotation.Nullable + private StateEnum state; + + public static final String SERIALIZED_NAME_ENABLED = "enabled"; + @SerializedName(SERIALIZED_NAME_ENABLED) + @javax.annotation.Nullable + private Boolean enabled; + + public static final String SERIALIZED_NAME_PROJECT = "project"; + @SerializedName(SERIALIZED_NAME_PROJECT) + @javax.annotation.Nullable + private Project project; + + public static final String SERIALIZED_NAME_AGENT_TEMPLATE = "agentTemplate"; + @SerializedName(SERIALIZED_NAME_AGENT_TEMPLATE) + @javax.annotation.Nullable + private AgentTemplate agentTemplate; + + public static final String SERIALIZED_NAME_CONFIGURATION = "configuration"; + @SerializedName(SERIALIZED_NAME_CONFIGURATION) + @javax.annotation.Nullable + private ModelConfiguration _configuration; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + @javax.annotation.Nullable + private Changelog changeLog; + + public Agents() { + } + + public Agents( + URI href + ) { + this(); + this.href = href; + } + + /** + * Agent URI + * @return href + */ + @javax.annotation.Nullable + public URI getHref() { + return href; + } + + + + public Agents type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * type + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public Agents uuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + return this; + } + + /** + * Equinix-assigned access point identifier + * @return uuid + */ + @javax.annotation.Nullable + public UUID getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + } + + + public Agents name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Customer-provided agent name + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public Agents description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Customer-provided agent description + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + + public Agents state(@javax.annotation.Nullable StateEnum state) { + this.state = state; + return this; + } + + /** + * Agent state + * @return state + */ + @javax.annotation.Nullable + public StateEnum getState() { + return state; + } + + public void setState(@javax.annotation.Nullable StateEnum state) { + this.state = state; + } + + + public Agents enabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Customer-provided agent enabled status + * @return enabled + */ + @javax.annotation.Nullable + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(@javax.annotation.Nullable Boolean enabled) { + this.enabled = enabled; + } + + + public Agents project(@javax.annotation.Nullable Project project) { + this.project = project; + return this; + } + + /** + * Get project + * @return project + */ + @javax.annotation.Nullable + public Project getProject() { + return project; + } + + public void setProject(@javax.annotation.Nullable Project project) { + this.project = project; + } + + + public Agents agentTemplate(@javax.annotation.Nullable AgentTemplate agentTemplate) { + this.agentTemplate = agentTemplate; + return this; + } + + /** + * Get agentTemplate + * @return agentTemplate + */ + @javax.annotation.Nullable + public AgentTemplate getAgentTemplate() { + return agentTemplate; + } + + public void setAgentTemplate(@javax.annotation.Nullable AgentTemplate agentTemplate) { + this.agentTemplate = agentTemplate; + } + + + public Agents _configuration(@javax.annotation.Nullable ModelConfiguration _configuration) { + this._configuration = _configuration; + return this; + } + + /** + * Get _configuration + * @return _configuration + */ + @javax.annotation.Nullable + public ModelConfiguration getConfiguration() { + return _configuration; + } + + public void setConfiguration(@javax.annotation.Nullable ModelConfiguration _configuration) { + this._configuration = _configuration; + } + + + public Agents changeLog(@javax.annotation.Nullable Changelog changeLog) { + this.changeLog = changeLog; + return this; + } + + /** + * Get changeLog + * @return changeLog + */ + @javax.annotation.Nullable + public Changelog getChangeLog() { + return changeLog; + } + + public void setChangeLog(@javax.annotation.Nullable 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 Agents instance itself + */ + public Agents 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; + } + Agents agents = (Agents) o; + return Objects.equals(this.href, agents.href) && + Objects.equals(this.type, agents.type) && + Objects.equals(this.uuid, agents.uuid) && + Objects.equals(this.name, agents.name) && + Objects.equals(this.description, agents.description) && + Objects.equals(this.state, agents.state) && + Objects.equals(this.enabled, agents.enabled) && + Objects.equals(this.project, agents.project) && + Objects.equals(this.agentTemplate, agents.agentTemplate) && + Objects.equals(this._configuration, agents._configuration) && + Objects.equals(this.changeLog, agents.changeLog)&& + Objects.equals(this.additionalProperties, agents.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, name, description, state, enabled, project, agentTemplate, _configuration, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Agents {\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(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append(" agentTemplate: ").append(toIndentedString(agentTemplate)).append("\n"); + sb.append(" _configuration: ").append(toIndentedString(_configuration)).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(Arrays.asList("href", "type", "uuid", "name", "description", "state", "enabled", "project", "agentTemplate", "configuration", "changeLog")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to Agents + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!Agents.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in Agents is not found in the empty JSON string", Agents.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + if ((jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) && !jsonObj.get("state").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `state` to be a primitive type in the JSON string but got `%s`", jsonObj.get("state").toString())); + } + // validate the optional field `state` + if (jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) { + StateEnum.validateJsonElement(jsonObj.get("state")); + } + // validate the optional field `project` + if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { + Project.validateJsonElement(jsonObj.get("project")); + } + // validate the optional field `agentTemplate` + if (jsonObj.get("agentTemplate") != null && !jsonObj.get("agentTemplate").isJsonNull()) { + AgentTemplate.validateJsonElement(jsonObj.get("agentTemplate")); + } + // validate the optional field `configuration` + if (jsonObj.get("configuration") != null && !jsonObj.get("configuration").isJsonNull()) { + ModelConfiguration.validateJsonElement(jsonObj.get("configuration")); + } + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonElement(jsonObj.get("changeLog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!Agents.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'Agents' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(Agents.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, Agents 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public Agents read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + Agents 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(Locale.ROOT, "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 Agents given an JSON string + * + * @param jsonString JSON string + * @return An instance of Agents + * @throws IOException if the JSON string is invalid with respect to Agents + */ + public static Agents fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, Agents.class); + } + + /** + * Convert an instance of Agents to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Asset.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Asset.java index a1014589..7c3ff680 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Asset.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Asset.java @@ -39,7 +39,11 @@ public enum Asset { ORGANIZATIONS("organizations"), - PROJECTS("projects"); + PROJECTS("projects"), + + NETWORKEDGEDEVICES("networkEdgeDevices"), + + COMPANYPROFILES("companyProfiles"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ChatMessage.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ChatMessage.java new file mode 100644 index 00000000..29987023 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ChatMessage.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.MessagesInner; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Chat message and tool call information during the agent operation + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ChatMessage { + public static final String SERIALIZED_NAME_MESSAGES = "messages"; + @SerializedName(SERIALIZED_NAME_MESSAGES) + @javax.annotation.Nullable + private List messages = new ArrayList<>(); + + public ChatMessage() { + } + + public ChatMessage messages(@javax.annotation.Nullable List messages) { + this.messages = messages; + return this; + } + + public ChatMessage addMessagesItem(MessagesInner messagesItem) { + if (this.messages == null) { + this.messages = new ArrayList<>(); + } + this.messages.add(messagesItem); + return this; + } + + /** + * List of chat messages + * @return messages + */ + @javax.annotation.Nullable + public List getMessages() { + return messages; + } + + public void setMessages(@javax.annotation.Nullable List messages) { + this.messages = messages; + } + + /** + * 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 ChatMessage instance itself + */ + public ChatMessage 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; + } + ChatMessage chatMessage = (ChatMessage) o; + return Objects.equals(this.messages, chatMessage.messages)&& + Objects.equals(this.additionalProperties, chatMessage.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(messages, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ChatMessage {\n"); + sb.append(" messages: ").append(toIndentedString(messages)).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(Arrays.asList("messages")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ChatMessage + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ChatMessage.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ChatMessage is not found in the empty JSON string", ChatMessage.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("messages") != null && !jsonObj.get("messages").isJsonNull()) { + JsonArray jsonArraymessages = jsonObj.getAsJsonArray("messages"); + if (jsonArraymessages != null) { + // ensure the json data is an array + if (!jsonObj.get("messages").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `messages` to be an array in the JSON string but got `%s`", jsonObj.get("messages").toString())); + } + + // validate the optional field `messages` (array) + for (int i = 0; i < jsonArraymessages.size(); i++) { + MessagesInner.validateJsonElement(jsonArraymessages.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ChatMessage.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ChatMessage' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ChatMessage.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ChatMessage 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ChatMessage read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ChatMessage 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(Locale.ROOT, "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 ChatMessage given an JSON string + * + * @param jsonString JSON string + * @return An instance of ChatMessage + * @throws IOException if the JSON string is invalid with respect to ChatMessage + */ + public static ChatMessage fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ChatMessage.class); + } + + /** + * Convert an instance of ChatMessage to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudEventAssetType.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudEventAssetType.java index 3608a4cf..218b4d07 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudEventAssetType.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudEventAssetType.java @@ -45,7 +45,9 @@ public enum CloudEventAssetType { ORGANIZATIONS("organizations"), - TIMESERVICES("timeServices"); + TIMESERVICES("timeServices"), + + COMPANYPROFILES("companyProfiles"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationAndExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationAndExpression.java new file mode 100644 index 00000000..dc36bf98 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationAndExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AND expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationAndExpression { + public static final String SERIALIZED_NAME_AND = "and"; + @SerializedName(SERIALIZED_NAME_AND) + @javax.annotation.Nullable + private List and = new ArrayList<>(); + + public CloudRouterRouteAggregationAndExpression() { + } + + public CloudRouterRouteAggregationAndExpression and(@javax.annotation.Nullable List and) { + this.and = and; + return this; + } + + public CloudRouterRouteAggregationAndExpression addAndItem(CloudRouterRouteAggregationExpression 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(@javax.annotation.Nullable 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 CloudRouterRouteAggregationAndExpression instance itself + */ + public CloudRouterRouteAggregationAndExpression 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; + } + CloudRouterRouteAggregationAndExpression cloudRouterRouteAggregationAndExpression = (CloudRouterRouteAggregationAndExpression) o; + return Objects.equals(this.and, cloudRouterRouteAggregationAndExpression.and)&& + Objects.equals(this.additionalProperties, cloudRouterRouteAggregationAndExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(and, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteAggregationAndExpression {\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(Arrays.asList("and")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationAndExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteAggregationAndExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteAggregationAndExpression is not found in the empty JSON string", CloudRouterRouteAggregationAndExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + 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(Locale.ROOT, "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++) { + CloudRouterRouteAggregationExpression.validateJsonElement(jsonArrayand.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationAndExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationAndExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationAndExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationAndExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteAggregationAndExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteAggregationAndExpression 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(Locale.ROOT, "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 CloudRouterRouteAggregationAndExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationAndExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationAndExpression + */ + public static CloudRouterRouteAggregationAndExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationAndExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationAndExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationExpression.java new file mode 100644 index 00000000..8a4b182f --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationExpression.java @@ -0,0 +1,315 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationAndExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationOrExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationSimpleExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationExpression extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CloudRouterRouteAggregationExpression.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterCloudRouterRouteAggregationAndExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationAndExpression.class)); + final TypeAdapter adapterCloudRouterRouteAggregationOrExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationOrExpression.class)); + final TypeAdapter adapterCloudRouterRouteAggregationSimpleExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationExpression value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `CloudRouterRouteAggregationAndExpression` + if (value.getActualInstance() instanceof CloudRouterRouteAggregationAndExpression) { + JsonElement element = adapterCloudRouterRouteAggregationAndExpression.toJsonTree((CloudRouterRouteAggregationAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteAggregationOrExpression` + if (value.getActualInstance() instanceof CloudRouterRouteAggregationOrExpression) { + JsonElement element = adapterCloudRouterRouteAggregationOrExpression.toJsonTree((CloudRouterRouteAggregationOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteAggregationSimpleExpression` + if (value.getActualInstance() instanceof CloudRouterRouteAggregationSimpleExpression) { + JsonElement element = adapterCloudRouterRouteAggregationSimpleExpression.toJsonTree((CloudRouterRouteAggregationSimpleExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression"); + } + + @Override + public CloudRouterRouteAggregationExpression read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize CloudRouterRouteAggregationAndExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteAggregationAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteAggregationAndExpression; + CloudRouterRouteAggregationExpression ret = new CloudRouterRouteAggregationExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteAggregationAndExpression'", e); + } + // deserialize CloudRouterRouteAggregationOrExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteAggregationOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteAggregationOrExpression; + CloudRouterRouteAggregationExpression ret = new CloudRouterRouteAggregationExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteAggregationOrExpression'", e); + } + // deserialize CloudRouterRouteAggregationSimpleExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteAggregationSimpleExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteAggregationSimpleExpression; + CloudRouterRouteAggregationExpression ret = new CloudRouterRouteAggregationExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationSimpleExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteAggregationSimpleExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for CloudRouterRouteAggregationExpression: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public CloudRouterRouteAggregationExpression() { + super("anyOf", Boolean.FALSE); + } + + public CloudRouterRouteAggregationExpression(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("CloudRouterRouteAggregationAndExpression", CloudRouterRouteAggregationAndExpression.class); + schemas.put("CloudRouterRouteAggregationOrExpression", CloudRouterRouteAggregationOrExpression.class); + schemas.put("CloudRouterRouteAggregationSimpleExpression", CloudRouterRouteAggregationSimpleExpression.class); + } + + @Override + public Map> getSchemas() { + return CloudRouterRouteAggregationExpression.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof CloudRouterRouteAggregationAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteAggregationOrExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteAggregationSimpleExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression"); + } + + /** + * Get the actual instance, which can be the following: + * CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression + * + * @return The actual instance (CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteAggregationAndExpression`. If the actual instance is not `CloudRouterRouteAggregationAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteAggregationAndExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteAggregationAndExpression` + */ + public CloudRouterRouteAggregationAndExpression getCloudRouterRouteAggregationAndExpression() throws ClassCastException { + return (CloudRouterRouteAggregationAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteAggregationOrExpression`. If the actual instance is not `CloudRouterRouteAggregationOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteAggregationOrExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteAggregationOrExpression` + */ + public CloudRouterRouteAggregationOrExpression getCloudRouterRouteAggregationOrExpression() throws ClassCastException { + return (CloudRouterRouteAggregationOrExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteAggregationSimpleExpression`. If the actual instance is not `CloudRouterRouteAggregationSimpleExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteAggregationSimpleExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteAggregationSimpleExpression` + */ + public CloudRouterRouteAggregationSimpleExpression getCloudRouterRouteAggregationSimpleExpression() throws ClassCastException { + return (CloudRouterRouteAggregationSimpleExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with CloudRouterRouteAggregationAndExpression + try { + CloudRouterRouteAggregationAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteAggregationOrExpression + try { + CloudRouterRouteAggregationOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteAggregationSimpleExpression + try { + CloudRouterRouteAggregationSimpleExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationSimpleExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for CloudRouterRouteAggregationExpression with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of CloudRouterRouteAggregationExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationExpression + */ + public static CloudRouterRouteAggregationExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationOrExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationOrExpression.java new file mode 100644 index 00000000..3db168a5 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationOrExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * OR expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationOrExpression { + public static final String SERIALIZED_NAME_OR = "or"; + @SerializedName(SERIALIZED_NAME_OR) + @javax.annotation.Nullable + private List or = new ArrayList<>(); + + public CloudRouterRouteAggregationOrExpression() { + } + + public CloudRouterRouteAggregationOrExpression or(@javax.annotation.Nullable List or) { + this.or = or; + return this; + } + + public CloudRouterRouteAggregationOrExpression addOrItem(CloudRouterRouteAggregationExpression orItem) { + if (this.or == null) { + this.or = new ArrayList<>(); + } + this.or.add(orItem); + return this; + } + + /** + * Get or + * @return or + */ + @javax.annotation.Nullable + public List getOr() { + return or; + } + + public void setOr(@javax.annotation.Nullable List or) { + this.or = or; + } + + /** + * 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 CloudRouterRouteAggregationOrExpression instance itself + */ + public CloudRouterRouteAggregationOrExpression 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; + } + CloudRouterRouteAggregationOrExpression cloudRouterRouteAggregationOrExpression = (CloudRouterRouteAggregationOrExpression) o; + return Objects.equals(this.or, cloudRouterRouteAggregationOrExpression.or)&& + Objects.equals(this.additionalProperties, cloudRouterRouteAggregationOrExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(or, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteAggregationOrExpression {\n"); + sb.append(" or: ").append(toIndentedString(or)).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(Arrays.asList("or")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationOrExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteAggregationOrExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteAggregationOrExpression is not found in the empty JSON string", CloudRouterRouteAggregationOrExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("or") != null && !jsonObj.get("or").isJsonNull()) { + JsonArray jsonArrayor = jsonObj.getAsJsonArray("or"); + if (jsonArrayor != null) { + // ensure the json data is an array + if (!jsonObj.get("or").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `or` to be an array in the JSON string but got `%s`", jsonObj.get("or").toString())); + } + + // validate the optional field `or` (array) + for (int i = 0; i < jsonArrayor.size(); i++) { + CloudRouterRouteAggregationExpression.validateJsonElement(jsonArrayor.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationOrExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationOrExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationOrExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteAggregationOrExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteAggregationOrExpression 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(Locale.ROOT, "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 CloudRouterRouteAggregationOrExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationOrExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationOrExpression + */ + public static CloudRouterRouteAggregationOrExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationOrExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationOrExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationSimpleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationSimpleExpression.java new file mode 100644 index 00000000..90da3218 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationSimpleExpression.java @@ -0,0 +1,411 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteAggregationSimpleExpression + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationSimpleExpression { + /** + * Gets or Sets property + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + ATTACHMENTSTATUS("/attachmentStatus"); + + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PropertyEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private PropertyEnum property; + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @javax.annotation.Nullable + private String operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @javax.annotation.Nullable + private List values = new ArrayList<>(); + + public CloudRouterRouteAggregationSimpleExpression() { + } + + public CloudRouterRouteAggregationSimpleExpression property(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public PropertyEnum getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + } + + + public CloudRouterRouteAggregationSimpleExpression operator(@javax.annotation.Nullable String operator) { + this.operator = operator; + return this; + } + + /** + * Get operator + * @return operator + */ + @javax.annotation.Nullable + public String getOperator() { + return operator; + } + + public void setOperator(@javax.annotation.Nullable String operator) { + this.operator = operator; + } + + + public CloudRouterRouteAggregationSimpleExpression values(@javax.annotation.Nullable List values) { + this.values = values; + return this; + } + + public CloudRouterRouteAggregationSimpleExpression 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(@javax.annotation.Nullable 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 CloudRouterRouteAggregationSimpleExpression instance itself + */ + public CloudRouterRouteAggregationSimpleExpression 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; + } + CloudRouterRouteAggregationSimpleExpression cloudRouterRouteAggregationSimpleExpression = (CloudRouterRouteAggregationSimpleExpression) o; + return Objects.equals(this.property, cloudRouterRouteAggregationSimpleExpression.property) && + Objects.equals(this.operator, cloudRouterRouteAggregationSimpleExpression.operator) && + Objects.equals(this.values, cloudRouterRouteAggregationSimpleExpression.values)&& + Objects.equals(this.additionalProperties, cloudRouterRouteAggregationSimpleExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, operator, values, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteAggregationSimpleExpression {\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(Arrays.asList("property", "operator", "values")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationSimpleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteAggregationSimpleExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteAggregationSimpleExpression is not found in the empty JSON string", CloudRouterRouteAggregationSimpleExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").toString())); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + PropertyEnum.validateJsonElement(jsonObj.get("property")); + } + if ((jsonObj.get("operator") != null && !jsonObj.get("operator").isJsonNull()) && !jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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 (!CloudRouterRouteAggregationSimpleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationSimpleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationSimpleExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteAggregationSimpleExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteAggregationSimpleExpression 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(Locale.ROOT, "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 CloudRouterRouteAggregationSimpleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationSimpleExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationSimpleExpression + */ + public static CloudRouterRouteAggregationSimpleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationSimpleExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationSimpleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsFilter.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsFilter.java new file mode 100644 index 00000000..49895e36 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsFilter.java @@ -0,0 +1,270 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationAndExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationOrExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationsFilter extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CloudRouterRouteAggregationsFilter.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationsFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationsFilter' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterCloudRouterRouteAggregationAndExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationAndExpression.class)); + final TypeAdapter adapterCloudRouterRouteAggregationOrExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationsFilter value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `CloudRouterRouteAggregationAndExpression` + if (value.getActualInstance() instanceof CloudRouterRouteAggregationAndExpression) { + JsonElement element = adapterCloudRouterRouteAggregationAndExpression.toJsonTree((CloudRouterRouteAggregationAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteAggregationOrExpression` + if (value.getActualInstance() instanceof CloudRouterRouteAggregationOrExpression) { + JsonElement element = adapterCloudRouterRouteAggregationOrExpression.toJsonTree((CloudRouterRouteAggregationOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression"); + } + + @Override + public CloudRouterRouteAggregationsFilter read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize CloudRouterRouteAggregationAndExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteAggregationAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteAggregationAndExpression; + CloudRouterRouteAggregationsFilter ret = new CloudRouterRouteAggregationsFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteAggregationAndExpression'", e); + } + // deserialize CloudRouterRouteAggregationOrExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteAggregationOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteAggregationOrExpression; + CloudRouterRouteAggregationsFilter ret = new CloudRouterRouteAggregationsFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteAggregationOrExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for CloudRouterRouteAggregationsFilter: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public CloudRouterRouteAggregationsFilter() { + super("anyOf", Boolean.FALSE); + } + + public CloudRouterRouteAggregationsFilter(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("CloudRouterRouteAggregationAndExpression", CloudRouterRouteAggregationAndExpression.class); + schemas.put("CloudRouterRouteAggregationOrExpression", CloudRouterRouteAggregationOrExpression.class); + } + + @Override + public Map> getSchemas() { + return CloudRouterRouteAggregationsFilter.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof CloudRouterRouteAggregationAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteAggregationOrExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression"); + } + + /** + * Get the actual instance, which can be the following: + * CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression + * + * @return The actual instance (CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteAggregationAndExpression`. If the actual instance is not `CloudRouterRouteAggregationAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteAggregationAndExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteAggregationAndExpression` + */ + public CloudRouterRouteAggregationAndExpression getCloudRouterRouteAggregationAndExpression() throws ClassCastException { + return (CloudRouterRouteAggregationAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteAggregationOrExpression`. If the actual instance is not `CloudRouterRouteAggregationOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteAggregationOrExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteAggregationOrExpression` + */ + public CloudRouterRouteAggregationOrExpression getCloudRouterRouteAggregationOrExpression() throws ClassCastException { + return (CloudRouterRouteAggregationOrExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationsFilter + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with CloudRouterRouteAggregationAndExpression + try { + CloudRouterRouteAggregationAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteAggregationOrExpression + try { + CloudRouterRouteAggregationOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteAggregationOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for CloudRouterRouteAggregationsFilter with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of CloudRouterRouteAggregationsFilter given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationsFilter + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationsFilter + */ + public static CloudRouterRouteAggregationsFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationsFilter.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationsFilter to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchBase.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchBase.java new file mode 100644 index 00000000..59103f0a --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchBase.java @@ -0,0 +1,370 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteAggregationsFilter; +import com.equinix.sdk.fabricv4.model.Pagination; +import com.equinix.sdk.fabricv4.model.RaAttachmentSortItem; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteAggregationsSearchBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationsSearchBase { + public static final String SERIALIZED_NAME_FILTER = "filter"; + @SerializedName(SERIALIZED_NAME_FILTER) + @javax.annotation.Nullable + private CloudRouterRouteAggregationsFilter filter; + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_SORT = "sort"; + @SerializedName(SERIALIZED_NAME_SORT) + @javax.annotation.Nullable + private List sort = new ArrayList<>(); + + public CloudRouterRouteAggregationsSearchBase() { + } + + public CloudRouterRouteAggregationsSearchBase filter(@javax.annotation.Nullable CloudRouterRouteAggregationsFilter filter) { + this.filter = filter; + return this; + } + + /** + * Get filter + * @return filter + */ + @javax.annotation.Nullable + public CloudRouterRouteAggregationsFilter getFilter() { + return filter; + } + + public void setFilter(@javax.annotation.Nullable CloudRouterRouteAggregationsFilter filter) { + this.filter = filter; + } + + + public CloudRouterRouteAggregationsSearchBase pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public CloudRouterRouteAggregationsSearchBase sort(@javax.annotation.Nullable List sort) { + this.sort = sort; + return this; + } + + public CloudRouterRouteAggregationsSearchBase addSortItem(RaAttachmentSortItem 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(@javax.annotation.Nullable 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 CloudRouterRouteAggregationsSearchBase instance itself + */ + public CloudRouterRouteAggregationsSearchBase 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; + } + CloudRouterRouteAggregationsSearchBase cloudRouterRouteAggregationsSearchBase = (CloudRouterRouteAggregationsSearchBase) o; + return Objects.equals(this.filter, cloudRouterRouteAggregationsSearchBase.filter) && + Objects.equals(this.pagination, cloudRouterRouteAggregationsSearchBase.pagination) && + Objects.equals(this.sort, cloudRouterRouteAggregationsSearchBase.sort)&& + Objects.equals(this.additionalProperties, cloudRouterRouteAggregationsSearchBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filter, pagination, sort, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteAggregationsSearchBase {\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(Arrays.asList("filter", "pagination", "sort")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationsSearchBase + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteAggregationsSearchBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteAggregationsSearchBase is not found in the empty JSON string", CloudRouterRouteAggregationsSearchBase.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `filter` + if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { + CloudRouterRouteAggregationsFilter.validateJsonElement(jsonObj.get("filter")); + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + RaAttachmentSortItem.validateJsonElement(jsonArraysort.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationsSearchBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationsSearchBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationsSearchBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationsSearchBase 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteAggregationsSearchBase read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteAggregationsSearchBase 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(Locale.ROOT, "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 CloudRouterRouteAggregationsSearchBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationsSearchBase + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationsSearchBase + */ + public static CloudRouterRouteAggregationsSearchBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationsSearchBase.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationsSearchBase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchResponse.java new file mode 100644 index 00000000..08583f10 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteAggregationsSearchResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.ConnectionRouteAggregationData; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteAggregationsSearchResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteAggregationsSearchResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public CloudRouterRouteAggregationsSearchResponse() { + } + + public CloudRouterRouteAggregationsSearchResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public CloudRouterRouteAggregationsSearchResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public CloudRouterRouteAggregationsSearchResponse addDataItem(ConnectionRouteAggregationData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of route aggregation attachments for a given cloud router + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 CloudRouterRouteAggregationsSearchResponse instance itself + */ + public CloudRouterRouteAggregationsSearchResponse 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; + } + CloudRouterRouteAggregationsSearchResponse cloudRouterRouteAggregationsSearchResponse = (CloudRouterRouteAggregationsSearchResponse) o; + return Objects.equals(this.pagination, cloudRouterRouteAggregationsSearchResponse.pagination) && + Objects.equals(this.data, cloudRouterRouteAggregationsSearchResponse.data)&& + Objects.equals(this.additionalProperties, cloudRouterRouteAggregationsSearchResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteAggregationsSearchResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteAggregationsSearchResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteAggregationsSearchResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteAggregationsSearchResponse is not found in the empty JSON string", CloudRouterRouteAggregationsSearchResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteAggregationsSearchResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteAggregationsSearchResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteAggregationsSearchResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteAggregationsSearchResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteAggregationsSearchResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteAggregationsSearchResponse 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(Locale.ROOT, "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 CloudRouterRouteAggregationsSearchResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteAggregationsSearchResponse + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteAggregationsSearchResponse + */ + public static CloudRouterRouteAggregationsSearchResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteAggregationsSearchResponse.class); + } + + /** + * Convert an instance of CloudRouterRouteAggregationsSearchResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterAndExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterAndExpression.java new file mode 100644 index 00000000..ae7c64c2 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterAndExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AND expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFilterAndExpression { + public static final String SERIALIZED_NAME_AND = "and"; + @SerializedName(SERIALIZED_NAME_AND) + @javax.annotation.Nullable + private List and = new ArrayList<>(); + + public CloudRouterRouteFilterAndExpression() { + } + + public CloudRouterRouteFilterAndExpression and(@javax.annotation.Nullable List and) { + this.and = and; + return this; + } + + public CloudRouterRouteFilterAndExpression addAndItem(CloudRouterRouteFilterExpression 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(@javax.annotation.Nullable 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 CloudRouterRouteFilterAndExpression instance itself + */ + public CloudRouterRouteFilterAndExpression 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; + } + CloudRouterRouteFilterAndExpression cloudRouterRouteFilterAndExpression = (CloudRouterRouteFilterAndExpression) o; + return Objects.equals(this.and, cloudRouterRouteFilterAndExpression.and)&& + Objects.equals(this.additionalProperties, cloudRouterRouteFilterAndExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(and, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteFilterAndExpression {\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(Arrays.asList("and")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFilterAndExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteFilterAndExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteFilterAndExpression is not found in the empty JSON string", CloudRouterRouteFilterAndExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + 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(Locale.ROOT, "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++) { + CloudRouterRouteFilterExpression.validateJsonElement(jsonArrayand.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFilterAndExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFilterAndExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterAndExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFilterAndExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteFilterAndExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteFilterAndExpression 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(Locale.ROOT, "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 CloudRouterRouteFilterAndExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFilterAndExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFilterAndExpression + */ + public static CloudRouterRouteFilterAndExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFilterAndExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteFilterAndExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterExpression.java new file mode 100644 index 00000000..7042c990 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterExpression.java @@ -0,0 +1,315 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterAndExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterOrExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterSimpleExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFilterExpression extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CloudRouterRouteFilterExpression.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFilterExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFilterExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterCloudRouterRouteFilterAndExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterAndExpression.class)); + final TypeAdapter adapterCloudRouterRouteFilterOrExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterOrExpression.class)); + final TypeAdapter adapterCloudRouterRouteFilterSimpleExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFilterExpression value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `CloudRouterRouteFilterAndExpression` + if (value.getActualInstance() instanceof CloudRouterRouteFilterAndExpression) { + JsonElement element = adapterCloudRouterRouteFilterAndExpression.toJsonTree((CloudRouterRouteFilterAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteFilterOrExpression` + if (value.getActualInstance() instanceof CloudRouterRouteFilterOrExpression) { + JsonElement element = adapterCloudRouterRouteFilterOrExpression.toJsonTree((CloudRouterRouteFilterOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteFilterSimpleExpression` + if (value.getActualInstance() instanceof CloudRouterRouteFilterSimpleExpression) { + JsonElement element = adapterCloudRouterRouteFilterSimpleExpression.toJsonTree((CloudRouterRouteFilterSimpleExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression"); + } + + @Override + public CloudRouterRouteFilterExpression read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize CloudRouterRouteFilterAndExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteFilterAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteFilterAndExpression; + CloudRouterRouteFilterExpression ret = new CloudRouterRouteFilterExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteFilterAndExpression'", e); + } + // deserialize CloudRouterRouteFilterOrExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteFilterOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteFilterOrExpression; + CloudRouterRouteFilterExpression ret = new CloudRouterRouteFilterExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteFilterOrExpression'", e); + } + // deserialize CloudRouterRouteFilterSimpleExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteFilterSimpleExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteFilterSimpleExpression; + CloudRouterRouteFilterExpression ret = new CloudRouterRouteFilterExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterSimpleExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteFilterSimpleExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for CloudRouterRouteFilterExpression: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public CloudRouterRouteFilterExpression() { + super("anyOf", Boolean.FALSE); + } + + public CloudRouterRouteFilterExpression(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("CloudRouterRouteFilterAndExpression", CloudRouterRouteFilterAndExpression.class); + schemas.put("CloudRouterRouteFilterOrExpression", CloudRouterRouteFilterOrExpression.class); + schemas.put("CloudRouterRouteFilterSimpleExpression", CloudRouterRouteFilterSimpleExpression.class); + } + + @Override + public Map> getSchemas() { + return CloudRouterRouteFilterExpression.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof CloudRouterRouteFilterAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteFilterOrExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteFilterSimpleExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression"); + } + + /** + * Get the actual instance, which can be the following: + * CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression + * + * @return The actual instance (CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteFilterAndExpression`. If the actual instance is not `CloudRouterRouteFilterAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteFilterAndExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteFilterAndExpression` + */ + public CloudRouterRouteFilterAndExpression getCloudRouterRouteFilterAndExpression() throws ClassCastException { + return (CloudRouterRouteFilterAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteFilterOrExpression`. If the actual instance is not `CloudRouterRouteFilterOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteFilterOrExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteFilterOrExpression` + */ + public CloudRouterRouteFilterOrExpression getCloudRouterRouteFilterOrExpression() throws ClassCastException { + return (CloudRouterRouteFilterOrExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteFilterSimpleExpression`. If the actual instance is not `CloudRouterRouteFilterSimpleExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteFilterSimpleExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteFilterSimpleExpression` + */ + public CloudRouterRouteFilterSimpleExpression getCloudRouterRouteFilterSimpleExpression() throws ClassCastException { + return (CloudRouterRouteFilterSimpleExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFilterExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with CloudRouterRouteFilterAndExpression + try { + CloudRouterRouteFilterAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteFilterOrExpression + try { + CloudRouterRouteFilterOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteFilterSimpleExpression + try { + CloudRouterRouteFilterSimpleExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterSimpleExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for CloudRouterRouteFilterExpression with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of CloudRouterRouteFilterExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFilterExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFilterExpression + */ + public static CloudRouterRouteFilterExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFilterExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteFilterExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterOrExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterOrExpression.java new file mode 100644 index 00000000..2f5bbf69 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterOrExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * OR expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFilterOrExpression { + public static final String SERIALIZED_NAME_OR = "or"; + @SerializedName(SERIALIZED_NAME_OR) + @javax.annotation.Nullable + private List or = new ArrayList<>(); + + public CloudRouterRouteFilterOrExpression() { + } + + public CloudRouterRouteFilterOrExpression or(@javax.annotation.Nullable List or) { + this.or = or; + return this; + } + + public CloudRouterRouteFilterOrExpression addOrItem(CloudRouterRouteFilterExpression orItem) { + if (this.or == null) { + this.or = new ArrayList<>(); + } + this.or.add(orItem); + return this; + } + + /** + * Get or + * @return or + */ + @javax.annotation.Nullable + public List getOr() { + return or; + } + + public void setOr(@javax.annotation.Nullable List or) { + this.or = or; + } + + /** + * 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 CloudRouterRouteFilterOrExpression instance itself + */ + public CloudRouterRouteFilterOrExpression 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; + } + CloudRouterRouteFilterOrExpression cloudRouterRouteFilterOrExpression = (CloudRouterRouteFilterOrExpression) o; + return Objects.equals(this.or, cloudRouterRouteFilterOrExpression.or)&& + Objects.equals(this.additionalProperties, cloudRouterRouteFilterOrExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(or, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteFilterOrExpression {\n"); + sb.append(" or: ").append(toIndentedString(or)).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(Arrays.asList("or")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFilterOrExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteFilterOrExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteFilterOrExpression is not found in the empty JSON string", CloudRouterRouteFilterOrExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("or") != null && !jsonObj.get("or").isJsonNull()) { + JsonArray jsonArrayor = jsonObj.getAsJsonArray("or"); + if (jsonArrayor != null) { + // ensure the json data is an array + if (!jsonObj.get("or").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `or` to be an array in the JSON string but got `%s`", jsonObj.get("or").toString())); + } + + // validate the optional field `or` (array) + for (int i = 0; i < jsonArrayor.size(); i++) { + CloudRouterRouteFilterExpression.validateJsonElement(jsonArrayor.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFilterOrExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFilterOrExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFilterOrExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteFilterOrExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteFilterOrExpression 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(Locale.ROOT, "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 CloudRouterRouteFilterOrExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFilterOrExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFilterOrExpression + */ + public static CloudRouterRouteFilterOrExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFilterOrExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteFilterOrExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterSimpleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterSimpleExpression.java new file mode 100644 index 00000000..afe01e61 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFilterSimpleExpression.java @@ -0,0 +1,413 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteFilterSimpleExpression + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFilterSimpleExpression { + /** + * Gets or Sets property + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + DIRECTION("/direction"), + + ATTACHMENTSTATUS("/attachmentStatus"); + + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PropertyEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private PropertyEnum property; + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @javax.annotation.Nullable + private String operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @javax.annotation.Nullable + private List values = new ArrayList<>(); + + public CloudRouterRouteFilterSimpleExpression() { + } + + public CloudRouterRouteFilterSimpleExpression property(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public PropertyEnum getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + } + + + public CloudRouterRouteFilterSimpleExpression operator(@javax.annotation.Nullable String operator) { + this.operator = operator; + return this; + } + + /** + * Get operator + * @return operator + */ + @javax.annotation.Nullable + public String getOperator() { + return operator; + } + + public void setOperator(@javax.annotation.Nullable String operator) { + this.operator = operator; + } + + + public CloudRouterRouteFilterSimpleExpression values(@javax.annotation.Nullable List values) { + this.values = values; + return this; + } + + public CloudRouterRouteFilterSimpleExpression 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(@javax.annotation.Nullable 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 CloudRouterRouteFilterSimpleExpression instance itself + */ + public CloudRouterRouteFilterSimpleExpression 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; + } + CloudRouterRouteFilterSimpleExpression cloudRouterRouteFilterSimpleExpression = (CloudRouterRouteFilterSimpleExpression) o; + return Objects.equals(this.property, cloudRouterRouteFilterSimpleExpression.property) && + Objects.equals(this.operator, cloudRouterRouteFilterSimpleExpression.operator) && + Objects.equals(this.values, cloudRouterRouteFilterSimpleExpression.values)&& + Objects.equals(this.additionalProperties, cloudRouterRouteFilterSimpleExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, operator, values, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteFilterSimpleExpression {\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(Arrays.asList("property", "operator", "values")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFilterSimpleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteFilterSimpleExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteFilterSimpleExpression is not found in the empty JSON string", CloudRouterRouteFilterSimpleExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").toString())); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + PropertyEnum.validateJsonElement(jsonObj.get("property")); + } + if ((jsonObj.get("operator") != null && !jsonObj.get("operator").isJsonNull()) && !jsonObj.get("operator").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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 (!CloudRouterRouteFilterSimpleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFilterSimpleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFilterSimpleExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteFilterSimpleExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteFilterSimpleExpression 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(Locale.ROOT, "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 CloudRouterRouteFilterSimpleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFilterSimpleExpression + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFilterSimpleExpression + */ + public static CloudRouterRouteFilterSimpleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFilterSimpleExpression.class); + } + + /** + * Convert an instance of CloudRouterRouteFilterSimpleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersFilter.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersFilter.java new file mode 100644 index 00000000..c271e0bd --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersFilter.java @@ -0,0 +1,270 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterAndExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterExpression; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFilterOrExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFiltersFilter extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(CloudRouterRouteFiltersFilter.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFiltersFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFiltersFilter' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterCloudRouterRouteFilterAndExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterAndExpression.class)); + final TypeAdapter adapterCloudRouterRouteFilterOrExpression = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFilterOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFiltersFilter value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `CloudRouterRouteFilterAndExpression` + if (value.getActualInstance() instanceof CloudRouterRouteFilterAndExpression) { + JsonElement element = adapterCloudRouterRouteFilterAndExpression.toJsonTree((CloudRouterRouteFilterAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `CloudRouterRouteFilterOrExpression` + if (value.getActualInstance() instanceof CloudRouterRouteFilterOrExpression) { + JsonElement element = adapterCloudRouterRouteFilterOrExpression.toJsonTree((CloudRouterRouteFilterOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression"); + } + + @Override + public CloudRouterRouteFiltersFilter read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize CloudRouterRouteFilterAndExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteFilterAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteFilterAndExpression; + CloudRouterRouteFiltersFilter ret = new CloudRouterRouteFiltersFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteFilterAndExpression'", e); + } + // deserialize CloudRouterRouteFilterOrExpression + try { + // validate the JSON object to see if any exception is thrown + CloudRouterRouteFilterOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterCloudRouterRouteFilterOrExpression; + CloudRouterRouteFiltersFilter ret = new CloudRouterRouteFiltersFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'CloudRouterRouteFilterOrExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for CloudRouterRouteFiltersFilter: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public CloudRouterRouteFiltersFilter() { + super("anyOf", Boolean.FALSE); + } + + public CloudRouterRouteFiltersFilter(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("CloudRouterRouteFilterAndExpression", CloudRouterRouteFilterAndExpression.class); + schemas.put("CloudRouterRouteFilterOrExpression", CloudRouterRouteFilterOrExpression.class); + } + + @Override + public Map> getSchemas() { + return CloudRouterRouteFiltersFilter.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof CloudRouterRouteFilterAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof CloudRouterRouteFilterOrExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression"); + } + + /** + * Get the actual instance, which can be the following: + * CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression + * + * @return The actual instance (CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteFilterAndExpression`. If the actual instance is not `CloudRouterRouteFilterAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteFilterAndExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteFilterAndExpression` + */ + public CloudRouterRouteFilterAndExpression getCloudRouterRouteFilterAndExpression() throws ClassCastException { + return (CloudRouterRouteFilterAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `CloudRouterRouteFilterOrExpression`. If the actual instance is not `CloudRouterRouteFilterOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `CloudRouterRouteFilterOrExpression` + * @throws ClassCastException if the instance is not `CloudRouterRouteFilterOrExpression` + */ + public CloudRouterRouteFilterOrExpression getCloudRouterRouteFilterOrExpression() throws ClassCastException { + return (CloudRouterRouteFilterOrExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFiltersFilter + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with CloudRouterRouteFilterAndExpression + try { + CloudRouterRouteFilterAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with CloudRouterRouteFilterOrExpression + try { + CloudRouterRouteFilterOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for CloudRouterRouteFilterOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for CloudRouterRouteFiltersFilter with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of CloudRouterRouteFiltersFilter given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFiltersFilter + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFiltersFilter + */ + public static CloudRouterRouteFiltersFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFiltersFilter.class); + } + + /** + * Convert an instance of CloudRouterRouteFiltersFilter to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchBase.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchBase.java new file mode 100644 index 00000000..f66fb10b --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchBase.java @@ -0,0 +1,370 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.CloudRouterRouteFiltersFilter; +import com.equinix.sdk.fabricv4.model.Pagination; +import com.equinix.sdk.fabricv4.model.RfAttachmentSortItem; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteFiltersSearchBase + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFiltersSearchBase { + public static final String SERIALIZED_NAME_FILTER = "filter"; + @SerializedName(SERIALIZED_NAME_FILTER) + @javax.annotation.Nullable + private CloudRouterRouteFiltersFilter filter; + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_SORT = "sort"; + @SerializedName(SERIALIZED_NAME_SORT) + @javax.annotation.Nullable + private List sort = new ArrayList<>(); + + public CloudRouterRouteFiltersSearchBase() { + } + + public CloudRouterRouteFiltersSearchBase filter(@javax.annotation.Nullable CloudRouterRouteFiltersFilter filter) { + this.filter = filter; + return this; + } + + /** + * Get filter + * @return filter + */ + @javax.annotation.Nullable + public CloudRouterRouteFiltersFilter getFilter() { + return filter; + } + + public void setFilter(@javax.annotation.Nullable CloudRouterRouteFiltersFilter filter) { + this.filter = filter; + } + + + public CloudRouterRouteFiltersSearchBase pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public CloudRouterRouteFiltersSearchBase sort(@javax.annotation.Nullable List sort) { + this.sort = sort; + return this; + } + + public CloudRouterRouteFiltersSearchBase addSortItem(RfAttachmentSortItem 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(@javax.annotation.Nullable 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 CloudRouterRouteFiltersSearchBase instance itself + */ + public CloudRouterRouteFiltersSearchBase 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; + } + CloudRouterRouteFiltersSearchBase cloudRouterRouteFiltersSearchBase = (CloudRouterRouteFiltersSearchBase) o; + return Objects.equals(this.filter, cloudRouterRouteFiltersSearchBase.filter) && + Objects.equals(this.pagination, cloudRouterRouteFiltersSearchBase.pagination) && + Objects.equals(this.sort, cloudRouterRouteFiltersSearchBase.sort)&& + Objects.equals(this.additionalProperties, cloudRouterRouteFiltersSearchBase.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filter, pagination, sort, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteFiltersSearchBase {\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(Arrays.asList("filter", "pagination", "sort")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFiltersSearchBase + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteFiltersSearchBase.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteFiltersSearchBase is not found in the empty JSON string", CloudRouterRouteFiltersSearchBase.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `filter` + if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { + CloudRouterRouteFiltersFilter.validateJsonElement(jsonObj.get("filter")); + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + RfAttachmentSortItem.validateJsonElement(jsonArraysort.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFiltersSearchBase.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFiltersSearchBase' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFiltersSearchBase.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFiltersSearchBase 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteFiltersSearchBase read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteFiltersSearchBase 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(Locale.ROOT, "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 CloudRouterRouteFiltersSearchBase given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFiltersSearchBase + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFiltersSearchBase + */ + public static CloudRouterRouteFiltersSearchBase fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFiltersSearchBase.class); + } + + /** + * Convert an instance of CloudRouterRouteFiltersSearchBase to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchResponse.java new file mode 100644 index 00000000..57abc03a --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CloudRouterRouteFiltersSearchResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.ConnectionRouteFilterData; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CloudRouterRouteFiltersSearchResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CloudRouterRouteFiltersSearchResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public CloudRouterRouteFiltersSearchResponse() { + } + + public CloudRouterRouteFiltersSearchResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public CloudRouterRouteFiltersSearchResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public CloudRouterRouteFiltersSearchResponse addDataItem(ConnectionRouteFilterData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of route filter attachments for a given cloud router + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 CloudRouterRouteFiltersSearchResponse instance itself + */ + public CloudRouterRouteFiltersSearchResponse 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; + } + CloudRouterRouteFiltersSearchResponse cloudRouterRouteFiltersSearchResponse = (CloudRouterRouteFiltersSearchResponse) o; + return Objects.equals(this.pagination, cloudRouterRouteFiltersSearchResponse.pagination) && + Objects.equals(this.data, cloudRouterRouteFiltersSearchResponse.data)&& + Objects.equals(this.additionalProperties, cloudRouterRouteFiltersSearchResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CloudRouterRouteFiltersSearchResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CloudRouterRouteFiltersSearchResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CloudRouterRouteFiltersSearchResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CloudRouterRouteFiltersSearchResponse is not found in the empty JSON string", CloudRouterRouteFiltersSearchResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + ConnectionRouteFilterData.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CloudRouterRouteFiltersSearchResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CloudRouterRouteFiltersSearchResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CloudRouterRouteFiltersSearchResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CloudRouterRouteFiltersSearchResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CloudRouterRouteFiltersSearchResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CloudRouterRouteFiltersSearchResponse 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(Locale.ROOT, "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 CloudRouterRouteFiltersSearchResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of CloudRouterRouteFiltersSearchResponse + * @throws IOException if the JSON string is invalid with respect to CloudRouterRouteFiltersSearchResponse + */ + public static CloudRouterRouteFiltersSearchResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CloudRouterRouteFiltersSearchResponse.class); + } + + /** + * Convert an instance of CloudRouterRouteFiltersSearchResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponse.java index 62038291..718037c1 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponse.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponse.java @@ -17,6 +17,7 @@ import com.equinix.sdk.fabricv4.model.CompanyLogo; import com.equinix.sdk.fabricv4.model.CompanyMetro; import com.equinix.sdk.fabricv4.model.CompanyProfileChange; +import com.equinix.sdk.fabricv4.model.CompanyProfileResponseAccount; import com.equinix.sdk.fabricv4.model.CompanyServiceProfile; import com.equinix.sdk.fabricv4.model.PrivateService; import com.equinix.sdk.fabricv4.model.TagResponse; @@ -94,6 +95,11 @@ public class CompanyProfileResponse { @javax.annotation.Nullable private Object state; + public static final String SERIALIZED_NAME_ACCOUNT = "account"; + @SerializedName(SERIALIZED_NAME_ACCOUNT) + @javax.annotation.Nullable + private CompanyProfileResponseAccount account; + public static final String SERIALIZED_NAME_METROS = "metros"; @SerializedName(SERIALIZED_NAME_METROS) @javax.annotation.Nullable @@ -280,6 +286,25 @@ public void setState(@javax.annotation.Nullable Object state) { } + public CompanyProfileResponse account(@javax.annotation.Nullable CompanyProfileResponseAccount account) { + this.account = account; + return this; + } + + /** + * Get account + * @return account + */ + @javax.annotation.Nullable + public CompanyProfileResponseAccount getAccount() { + return account; + } + + public void setAccount(@javax.annotation.Nullable CompanyProfileResponseAccount account) { + this.account = account; + } + + public CompanyProfileResponse metros(@javax.annotation.Nullable List metros) { this.metros = metros; return this; @@ -571,6 +596,7 @@ public boolean equals(Object o) { Objects.equals(this.summary, companyProfileResponse.summary) && Objects.equals(this.description, companyProfileResponse.description) && Objects.equals(this.state, companyProfileResponse.state) && + Objects.equals(this.account, companyProfileResponse.account) && Objects.equals(this.metros, companyProfileResponse.metros) && Objects.equals(this.logo, companyProfileResponse.logo) && Objects.equals(this.tags, companyProfileResponse.tags) && @@ -586,7 +612,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, uuid, type, name, summary, description, state, metros, logo, tags, serviceProfiles, privateServices, notifications, webUrl, contactUrl, change, changeLog, additionalProperties); + return Objects.hash(href, uuid, type, name, summary, description, state, account, metros, logo, tags, serviceProfiles, privateServices, notifications, webUrl, contactUrl, change, changeLog, additionalProperties); } @Override @@ -600,6 +626,7 @@ public String toString() { sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" account: ").append(toIndentedString(account)).append("\n"); sb.append(" metros: ").append(toIndentedString(metros)).append("\n"); sb.append(" logo: ").append(toIndentedString(logo)).append("\n"); sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); @@ -632,7 +659,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("href", "uuid", "type", "name", "summary", "description", "state", "metros", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "contactUrl", "change", "changeLog")); + openapiFields = new HashSet(Arrays.asList("href", "uuid", "type", "name", "summary", "description", "state", "account", "metros", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "contactUrl", "change", "changeLog")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); @@ -669,6 +696,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } + // validate the optional field `account` + if (jsonObj.get("account") != null && !jsonObj.get("account").isJsonNull()) { + CompanyProfileResponseAccount.validateJsonElement(jsonObj.get("account")); + } if (jsonObj.get("metros") != null && !jsonObj.get("metros").isJsonNull()) { JsonArray jsonArraymetros = jsonObj.getAsJsonArray("metros"); if (jsonArraymetros != null) { diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponseAccount.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponseAccount.java new file mode 100644 index 00000000..91f8e144 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/CompanyProfileResponseAccount.java @@ -0,0 +1,286 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * CompanyProfileResponseAccount + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class CompanyProfileResponseAccount { + public static final String SERIALIZED_NAME_ROOT_ORG_ID = "rootOrgId"; + @SerializedName(SERIALIZED_NAME_ROOT_ORG_ID) + @javax.annotation.Nullable + private String rootOrgId; + + public CompanyProfileResponseAccount() { + } + + public CompanyProfileResponseAccount rootOrgId(@javax.annotation.Nullable String rootOrgId) { + this.rootOrgId = rootOrgId; + return this; + } + + /** + * Get rootOrgId + * @return rootOrgId + */ + @javax.annotation.Nullable + public String getRootOrgId() { + return rootOrgId; + } + + public void setRootOrgId(@javax.annotation.Nullable String rootOrgId) { + this.rootOrgId = rootOrgId; + } + + /** + * 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 CompanyProfileResponseAccount instance itself + */ + public CompanyProfileResponseAccount 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; + } + CompanyProfileResponseAccount companyProfileResponseAccount = (CompanyProfileResponseAccount) o; + return Objects.equals(this.rootOrgId, companyProfileResponseAccount.rootOrgId)&& + Objects.equals(this.additionalProperties, companyProfileResponseAccount.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(rootOrgId, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CompanyProfileResponseAccount {\n"); + sb.append(" rootOrgId: ").append(toIndentedString(rootOrgId)).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(Arrays.asList("rootOrgId")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to CompanyProfileResponseAccount + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!CompanyProfileResponseAccount.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in CompanyProfileResponseAccount is not found in the empty JSON string", CompanyProfileResponseAccount.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("rootOrgId") != null && !jsonObj.get("rootOrgId").isJsonNull()) && !jsonObj.get("rootOrgId").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `rootOrgId` to be a primitive type in the JSON string but got `%s`", jsonObj.get("rootOrgId").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!CompanyProfileResponseAccount.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'CompanyProfileResponseAccount' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(CompanyProfileResponseAccount.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, CompanyProfileResponseAccount 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public CompanyProfileResponseAccount read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + CompanyProfileResponseAccount 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(Locale.ROOT, "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 CompanyProfileResponseAccount given an JSON string + * + * @param jsonString JSON string + * @return An instance of CompanyProfileResponseAccount + * @throws IOException if the JSON string is invalid with respect to CompanyProfileResponseAccount + */ + public static CompanyProfileResponseAccount fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, CompanyProfileResponseAccount.class); + } + + /** + * Convert an instance of CompanyProfileResponseAccount to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Connection.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Connection.java index 305adf7e..446be267 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Connection.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Connection.java @@ -20,7 +20,6 @@ import com.equinix.sdk.fabricv4.model.ConnectionRedundancy; import com.equinix.sdk.fabricv4.model.ConnectionSide; import com.equinix.sdk.fabricv4.model.ConnectionSideAdditionalInfo; -import com.equinix.sdk.fabricv4.model.ConnectionState; import com.equinix.sdk.fabricv4.model.ConnectionType; import com.equinix.sdk.fabricv4.model.GeoScopeType; import com.equinix.sdk.fabricv4.model.MarketplaceSubscription; @@ -93,11 +92,6 @@ public class Connection { @javax.annotation.Nullable private String description; - public static final String SERIALIZED_NAME_STATE = "state"; - @SerializedName(SERIALIZED_NAME_STATE) - @javax.annotation.Nullable - private ConnectionState state; - public static final String SERIALIZED_NAME_CHANGE = "change"; @SerializedName(SERIALIZED_NAME_CHANGE) @javax.annotation.Nullable @@ -275,25 +269,6 @@ public void setDescription(@javax.annotation.Nullable String description) { } - public Connection state(@javax.annotation.Nullable ConnectionState state) { - this.state = state; - return this; - } - - /** - * Get state - * @return state - */ - @javax.annotation.Nullable - public ConnectionState getState() { - return state; - } - - public void setState(@javax.annotation.Nullable ConnectionState state) { - this.state = state; - } - - public Connection change(@javax.annotation.Nullable Change change) { this.change = change; return this; @@ -675,7 +650,6 @@ public boolean equals(Object o) { Objects.equals(this.uuid, connection.uuid) && Objects.equals(this.name, connection.name) && Objects.equals(this.description, connection.description) && - Objects.equals(this.state, connection.state) && Objects.equals(this.change, connection.change) && Objects.equals(this.operation, connection.operation) && Objects.equals(this.order, connection.order) && @@ -697,7 +671,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(href, type, uuid, name, description, state, change, operation, order, notifications, account, changeLog, bandwidth, geoScope, redundancy, isRemote, direction, aSide, zSide, marketplaceSubscription, additionalInfo, project, additionalProperties); + return Objects.hash(href, type, uuid, name, description, change, operation, order, notifications, account, changeLog, bandwidth, geoScope, redundancy, isRemote, direction, aSide, zSide, marketplaceSubscription, additionalInfo, project, additionalProperties); } @Override @@ -709,7 +683,6 @@ public String toString() { 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(" operation: ").append(toIndentedString(operation)).append("\n"); sb.append(" order: ").append(toIndentedString(order)).append("\n"); @@ -748,7 +721,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("href", "type", "uuid", "name", "description", "state", "change", "operation", "order", "notifications", "account", "changeLog", "bandwidth", "geoScope", "redundancy", "isRemote", "direction", "aSide", "zSide", "marketplaceSubscription", "additionalInfo", "project")); + openapiFields = new HashSet(Arrays.asList("href", "type", "uuid", "name", "description", "change", "operation", "order", "notifications", "account", "changeLog", "bandwidth", "geoScope", "redundancy", "isRemote", "direction", "aSide", "zSide", "marketplaceSubscription", "additionalInfo", "project")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(Arrays.asList("type", "name", "bandwidth", "aSide", "zSide")); @@ -788,10 +761,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); } - // validate the optional field `state` - if (jsonObj.get("state") != null && !jsonObj.get("state").isJsonNull()) { - ConnectionState.validateJsonElement(jsonObj.get("state")); - } // validate the optional field `change` if (jsonObj.get("change") != null && !jsonObj.get("change").isJsonNull()) { Change.validateJsonElement(jsonObj.get("change")); diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionSide.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionSide.java index 4cf0cc83..a3093f89 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionSide.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionSide.java @@ -14,10 +14,7 @@ import java.util.Objects; import java.util.Locale; import com.equinix.sdk.fabricv4.model.AccessPoint; -import com.equinix.sdk.fabricv4.model.ConnectionCompanyProfile; -import com.equinix.sdk.fabricv4.model.ConnectionInvitation; import com.equinix.sdk.fabricv4.model.ConnectionSideAdditionalInfo; -import com.equinix.sdk.fabricv4.model.InternetAccess; import com.equinix.sdk.fabricv4.model.ServiceToken; import com.google.gson.TypeAdapter; import com.google.gson.annotations.JsonAdapter; @@ -68,21 +65,6 @@ public class ConnectionSide { @javax.annotation.Nullable private AccessPoint accessPoint; - public static final String SERIALIZED_NAME_INTERNET_ACCESS = "internetAccess"; - @SerializedName(SERIALIZED_NAME_INTERNET_ACCESS) - @javax.annotation.Nullable - private InternetAccess internetAccess; - - public static final String SERIALIZED_NAME_COMPANY_PROFILE = "companyProfile"; - @SerializedName(SERIALIZED_NAME_COMPANY_PROFILE) - @javax.annotation.Nullable - private ConnectionCompanyProfile companyProfile; - - public static final String SERIALIZED_NAME_INVITATION = "invitation"; - @SerializedName(SERIALIZED_NAME_INVITATION) - @javax.annotation.Nullable - private ConnectionInvitation invitation; - public static final String SERIALIZED_NAME_ADDITIONAL_INFO = "additionalInfo"; @SerializedName(SERIALIZED_NAME_ADDITIONAL_INFO) @javax.annotation.Nullable @@ -129,63 +111,6 @@ public void setAccessPoint(@javax.annotation.Nullable AccessPoint accessPoint) { } - public ConnectionSide internetAccess(@javax.annotation.Nullable InternetAccess internetAccess) { - this.internetAccess = internetAccess; - return this; - } - - /** - * Get internetAccess - * @return internetAccess - */ - @javax.annotation.Nullable - public InternetAccess getInternetAccess() { - return internetAccess; - } - - public void setInternetAccess(@javax.annotation.Nullable InternetAccess internetAccess) { - this.internetAccess = internetAccess; - } - - - public ConnectionSide companyProfile(@javax.annotation.Nullable ConnectionCompanyProfile companyProfile) { - this.companyProfile = companyProfile; - return this; - } - - /** - * Get companyProfile - * @return companyProfile - */ - @javax.annotation.Nullable - public ConnectionCompanyProfile getCompanyProfile() { - return companyProfile; - } - - public void setCompanyProfile(@javax.annotation.Nullable ConnectionCompanyProfile companyProfile) { - this.companyProfile = companyProfile; - } - - - public ConnectionSide invitation(@javax.annotation.Nullable ConnectionInvitation invitation) { - this.invitation = invitation; - return this; - } - - /** - * Get invitation - * @return invitation - */ - @javax.annotation.Nullable - public ConnectionInvitation getInvitation() { - return invitation; - } - - public void setInvitation(@javax.annotation.Nullable ConnectionInvitation invitation) { - this.invitation = invitation; - } - - public ConnectionSide additionalInfo(@javax.annotation.Nullable List additionalInfo) { this.additionalInfo = additionalInfo; return this; @@ -269,16 +194,13 @@ public boolean equals(Object o) { ConnectionSide connectionSide = (ConnectionSide) o; return Objects.equals(this.serviceToken, connectionSide.serviceToken) && Objects.equals(this.accessPoint, connectionSide.accessPoint) && - Objects.equals(this.internetAccess, connectionSide.internetAccess) && - Objects.equals(this.companyProfile, connectionSide.companyProfile) && - Objects.equals(this.invitation, connectionSide.invitation) && Objects.equals(this.additionalInfo, connectionSide.additionalInfo)&& Objects.equals(this.additionalProperties, connectionSide.additionalProperties); } @Override public int hashCode() { - return Objects.hash(serviceToken, accessPoint, internetAccess, companyProfile, invitation, additionalInfo, additionalProperties); + return Objects.hash(serviceToken, accessPoint, additionalInfo, additionalProperties); } @Override @@ -287,9 +209,6 @@ public String toString() { sb.append("class ConnectionSide {\n"); sb.append(" serviceToken: ").append(toIndentedString(serviceToken)).append("\n"); sb.append(" accessPoint: ").append(toIndentedString(accessPoint)).append("\n"); - sb.append(" internetAccess: ").append(toIndentedString(internetAccess)).append("\n"); - sb.append(" companyProfile: ").append(toIndentedString(companyProfile)).append("\n"); - sb.append(" invitation: ").append(toIndentedString(invitation)).append("\n"); sb.append(" additionalInfo: ").append(toIndentedString(additionalInfo)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); @@ -313,7 +232,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("serviceToken", "accessPoint", "internetAccess", "companyProfile", "invitation", "additionalInfo")); + openapiFields = new HashSet(Arrays.asList("serviceToken", "accessPoint", "additionalInfo")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); @@ -340,18 +259,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("accessPoint") != null && !jsonObj.get("accessPoint").isJsonNull()) { AccessPoint.validateJsonElement(jsonObj.get("accessPoint")); } - // validate the optional field `internetAccess` - if (jsonObj.get("internetAccess") != null && !jsonObj.get("internetAccess").isJsonNull()) { - InternetAccess.validateJsonElement(jsonObj.get("internetAccess")); - } - // validate the optional field `companyProfile` - if (jsonObj.get("companyProfile") != null && !jsonObj.get("companyProfile").isJsonNull()) { - ConnectionCompanyProfile.validateJsonElement(jsonObj.get("companyProfile")); - } - // validate the optional field `invitation` - if (jsonObj.get("invitation") != null && !jsonObj.get("invitation").isJsonNull()) { - ConnectionInvitation.validateJsonElement(jsonObj.get("invitation")); - } if (jsonObj.get("additionalInfo") != null && !jsonObj.get("additionalInfo").isJsonNull()) { JsonArray jsonArrayadditionalInfo = jsonObj.getAsJsonArray("additionalInfo"); if (jsonArrayadditionalInfo != null) { diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionState.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionState.java index 75f37dc2..176caa2b 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionState.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionState.java @@ -43,12 +43,8 @@ public enum ConnectionState { PENDING("PENDING"), - PROVISIONED("PROVISIONED"), - PROVISIONING("PROVISIONING"), - REPROVISIONING("REPROVISIONING"), - EMPTY(""); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionType.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionType.java index 56bc75c1..510c3bd8 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionType.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ConnectionType.java @@ -55,9 +55,7 @@ public enum ConnectionType { MC_VC("MC_VC"), - IX_PUBLIC_VC("IX_PUBLIC_VC"), - - IX_PRIVATE_VC("IX_PRIVATE_VC"); + IX_VC("IX_VC"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/EquinixStatus.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/EquinixStatus.java index 2dec8723..4f246547 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/EquinixStatus.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/EquinixStatus.java @@ -37,22 +37,6 @@ public enum EquinixStatus { PROVISIONED("PROVISIONED"), - BEING_REPROVISIONED("BEING_REPROVISIONED"), - - BEING_DEPROVISIONED("BEING_DEPROVISIONED"), - - BEING_PROVISIONED("BEING_PROVISIONED"), - - CREATED("CREATED"), - - ERRORED("ERRORED"), - - PENDING_DEPROVISIONING("PENDING_DEPROVISIONING"), - - APPROVED("APPROVED"), - - ORDERING("ORDERING"), - PENDING_APPROVAL("PENDING_APPROVAL"), NOT_PROVISIONED("NOT_PROVISIONED"), @@ -73,25 +57,15 @@ public enum EquinixStatus { DELETED("DELETED"), - PENDING_BANDWIDTH_APPROVAL("PENDING_BANDWIDTH_APPROVAL"), - AUTO_APPROVAL_FAILED("AUTO_APPROVAL_FAILED"), - UPDATE_PENDING("UPDATE_PENDING"), - - DELETED_API("DELETED_API"), - - MODIFIED("MODIFIED"), - PENDING_PROVIDER_VLAN_ERROR("PENDING_PROVIDER_VLAN_ERROR"), DRAFT("DRAFT"), CANCELLED("CANCELLED"), - PENDING_INTERFACE_CONFIGURATION("PENDING_INTERFACE_CONFIGURATION"), - - PENDING_ACTIVATION("PENDING_ACTIVATION"); + PENDING_INTERFACE_CONFIGURATION("PENDING_INTERFACE_CONFIGURATION"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Expression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Expression.java index 33de6471..593869fd 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Expression.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Expression.java @@ -79,13 +79,23 @@ public enum OperatorEnum { GREATER_THAN(">"), + GREATER_THAN_OR_EQUAL_TO(">="), + LESS_THAN("<"), + LESS_THAN_OR_EQUAL_TO("<="), + LIKE("LIKE"), + ILKE("ILKE"), + IS_NOT_NULL("IS NOT NULL"), - IS_NULL("IS NULL"); + IS_NULL("IS NULL"), + + IN("IN"), + + BETWEEN("BETWEEN"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/MessagesInner.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/MessagesInner.java new file mode 100644 index 00000000..2d479d2c --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/MessagesInner.java @@ -0,0 +1,315 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * MessagesInner + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class MessagesInner { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_CONTENT = "content"; + @SerializedName(SERIALIZED_NAME_CONTENT) + @javax.annotation.Nullable + private String content; + + public MessagesInner() { + } + + public MessagesInner type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Role of the message sender user or assistant + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public MessagesInner content(@javax.annotation.Nullable String content) { + this.content = content; + return this; + } + + /** + * Content of the chat message + * @return content + */ + @javax.annotation.Nullable + public String getContent() { + return content; + } + + public void setContent(@javax.annotation.Nullable String content) { + this.content = content; + } + + /** + * 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 MessagesInner instance itself + */ + public MessagesInner 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; + } + MessagesInner messagesInner = (MessagesInner) o; + return Objects.equals(this.type, messagesInner.type) && + Objects.equals(this.content, messagesInner.content)&& + Objects.equals(this.additionalProperties, messagesInner.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, content, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class MessagesInner {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" content: ").append(toIndentedString(content)).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(Arrays.asList("type", "content")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to MessagesInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!MessagesInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in MessagesInner is not found in the empty JSON string", MessagesInner.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("type") != null && !jsonObj.get("type").isJsonNull()) && !jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("content") != null && !jsonObj.get("content").isJsonNull()) && !jsonObj.get("content").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `content` to be a primitive type in the JSON string but got `%s`", jsonObj.get("content").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!MessagesInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'MessagesInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(MessagesInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, MessagesInner 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public MessagesInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + MessagesInner 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(Locale.ROOT, "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 MessagesInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of MessagesInner + * @throws IOException if the JSON string is invalid with respect to MessagesInner + */ + public static MessagesInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, MessagesInner.class); + } + + /** + * Convert an instance of MessagesInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ModelConfiguration.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ModelConfiguration.java new file mode 100644 index 00000000..66183131 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ModelConfiguration.java @@ -0,0 +1,286 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * ModelConfiguration + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ModelConfiguration { + public static final String SERIALIZED_NAME_PROMPT = "prompt"; + @SerializedName(SERIALIZED_NAME_PROMPT) + @javax.annotation.Nullable + private String prompt; + + public ModelConfiguration() { + } + + public ModelConfiguration prompt(@javax.annotation.Nullable String prompt) { + this.prompt = prompt; + return this; + } + + /** + * Agent configuration prompt to be used for agent specification + * @return prompt + */ + @javax.annotation.Nullable + public String getPrompt() { + return prompt; + } + + public void setPrompt(@javax.annotation.Nullable String prompt) { + this.prompt = prompt; + } + + /** + * 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 ModelConfiguration instance itself + */ + public ModelConfiguration 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; + } + ModelConfiguration _configuration = (ModelConfiguration) o; + return Objects.equals(this.prompt, _configuration.prompt)&& + Objects.equals(this.additionalProperties, _configuration.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(prompt, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ModelConfiguration {\n"); + sb.append(" prompt: ").append(toIndentedString(prompt)).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(Arrays.asList("prompt")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ModelConfiguration + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ModelConfiguration.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ModelConfiguration is not found in the empty JSON string", ModelConfiguration.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("prompt") != null && !jsonObj.get("prompt").isJsonNull()) && !jsonObj.get("prompt").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `prompt` to be a primitive type in the JSON string but got `%s`", jsonObj.get("prompt").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ModelConfiguration.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ModelConfiguration' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ModelConfiguration.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ModelConfiguration 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ModelConfiguration read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ModelConfiguration 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(Locale.ROOT, "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 ModelConfiguration given an JSON string + * + * @param jsonString JSON string + * @return An instance of ModelConfiguration + * @throws IOException if the JSON string is invalid with respect to ModelConfiguration + */ + public static ModelConfiguration fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ModelConfiguration.class); + } + + /** + * Convert an instance of ModelConfiguration to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Order.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Order.java index 5fb04faa..730d3211 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Order.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Order.java @@ -80,6 +80,11 @@ public class Order { @javax.annotation.Nullable private Integer termLength = 1; + public static final String SERIALIZED_NAME_CONTRACTED_BANDWIDTH = "contractedBandwidth"; + @SerializedName(SERIALIZED_NAME_CONTRACTED_BANDWIDTH) + @javax.annotation.Nullable + private Integer contractedBandwidth; + public Order() { } @@ -198,6 +203,25 @@ public void setTermLength(@javax.annotation.Nullable Integer termLength) { this.termLength = termLength; } + + public Order contractedBandwidth(@javax.annotation.Nullable Integer contractedBandwidth) { + this.contractedBandwidth = contractedBandwidth; + return this; + } + + /** + * Contracted bandwidth + * @return contractedBandwidth + */ + @javax.annotation.Nullable + public Integer getContractedBandwidth() { + return contractedBandwidth; + } + + public void setContractedBandwidth(@javax.annotation.Nullable Integer contractedBandwidth) { + this.contractedBandwidth = contractedBandwidth; + } + /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -258,13 +282,14 @@ public boolean equals(Object o) { Objects.equals(this.billingTier, order.billingTier) && Objects.equals(this.orderId, order.orderId) && Objects.equals(this.orderNumber, order.orderNumber) && - Objects.equals(this.termLength, order.termLength)&& + Objects.equals(this.termLength, order.termLength) && + Objects.equals(this.contractedBandwidth, order.contractedBandwidth)&& Objects.equals(this.additionalProperties, order.additionalProperties); } @Override public int hashCode() { - return Objects.hash(purchaseOrderNumber, customerReferenceNumber, billingTier, orderId, orderNumber, termLength, additionalProperties); + return Objects.hash(purchaseOrderNumber, customerReferenceNumber, billingTier, orderId, orderNumber, termLength, contractedBandwidth, additionalProperties); } @Override @@ -277,6 +302,7 @@ public String toString() { sb.append(" orderId: ").append(toIndentedString(orderId)).append("\n"); sb.append(" orderNumber: ").append(toIndentedString(orderNumber)).append("\n"); sb.append(" termLength: ").append(toIndentedString(termLength)).append("\n"); + sb.append(" contractedBandwidth: ").append(toIndentedString(contractedBandwidth)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -299,7 +325,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("purchaseOrderNumber", "customerReferenceNumber", "billingTier", "orderId", "orderNumber", "termLength")); + openapiFields = new HashSet(Arrays.asList("purchaseOrderNumber", "customerReferenceNumber", "billingTier", "orderId", "orderNumber", "termLength", "contractedBandwidth")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortRequest.java index ae6cd8b4..28c42731 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortRequest.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortRequest.java @@ -13,8 +13,6 @@ import java.util.Objects; import java.util.Locale; -import com.equinix.sdk.fabricv4.model.EndCustomer; -import com.equinix.sdk.fabricv4.model.MarketplaceSubscription; import com.equinix.sdk.fabricv4.model.ModelPackage; import com.equinix.sdk.fabricv4.model.PhysicalPort; import com.equinix.sdk.fabricv4.model.PortAdditionalInfo; @@ -450,11 +448,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @javax.annotation.Nullable private List additionalInfo = new ArrayList<>(); - public static final String SERIALIZED_NAME_END_CUSTOMER = "endCustomer"; - @SerializedName(SERIALIZED_NAME_END_CUSTOMER) - @javax.annotation.Nullable - private EndCustomer endCustomer; - public static final String SERIALIZED_NAME_PHYSICAL_PORTS = "physicalPorts"; @SerializedName(SERIALIZED_NAME_PHYSICAL_PORTS) @javax.annotation.Nullable @@ -465,11 +458,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti @javax.annotation.Nullable private List loas = new ArrayList<>(); - public static final String SERIALIZED_NAME_MARKETPLACE_SUBSCRIPTION = "marketplaceSubscription"; - @SerializedName(SERIALIZED_NAME_MARKETPLACE_SUBSCRIPTION) - @javax.annotation.Nullable - private MarketplaceSubscription marketplaceSubscription; - public PortRequest() { } @@ -1088,25 +1076,6 @@ public void setAdditionalInfo(@javax.annotation.Nullable List physicalPorts) { this.physicalPorts = physicalPorts; return this; @@ -1160,25 +1129,6 @@ public void setLoas(@javax.annotation.Nullable List loas) { this.loas = loas; } - - public PortRequest marketplaceSubscription(@javax.annotation.Nullable MarketplaceSubscription marketplaceSubscription) { - this.marketplaceSubscription = marketplaceSubscription; - return this; - } - - /** - * Get marketplaceSubscription - * @return marketplaceSubscription - */ - @javax.annotation.Nullable - public MarketplaceSubscription getMarketplaceSubscription() { - return marketplaceSubscription; - } - - public void setMarketplaceSubscription(@javax.annotation.Nullable MarketplaceSubscription marketplaceSubscription) { - this.marketplaceSubscription = marketplaceSubscription; - } - /** * A container for additional, undeclared properties. * This is a holder for any undeclared properties as specified with @@ -1265,16 +1215,14 @@ 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.marketplaceSubscription, portRequest.marketplaceSubscription)&& + Objects.equals(this.loas, portRequest.loas)&& Objects.equals(this.additionalProperties, portRequest.additionalProperties); } @Override public int hashCode() { - return Objects.hash(type, name, description, physicalPortsSpeed, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, account, serviceType, serviceCode, bandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, endCustomer, physicalPorts, loas, marketplaceSubscription, additionalProperties); + return Objects.hash(type, name, description, physicalPortsSpeed, physicalPortsType, physicalPortsCount, connectivitySourceType, bmmrType, project, state, order, account, serviceType, serviceCode, bandwidth, location, device, _interface, demarcationPointIbx, tetherIbx, demarcationPoint, redundancy, encapsulation, lagEnabled, lag, asn, _package, settings, physicalPortQuantity, notifications, additionalInfo, physicalPorts, loas, additionalProperties); } @Override @@ -1312,10 +1260,8 @@ 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(" marketplaceSubscription: ").append(toIndentedString(marketplaceSubscription)).append("\n"); sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n"); sb.append("}"); return sb.toString(); @@ -1338,7 +1284,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("type", "name", "description", "physicalPortsSpeed", "physicalPortsType", "physicalPortsCount", "connectivitySourceType", "bmmrType", "project", "state", "order", "account", "serviceType", "serviceCode", "bandwidth", "location", "device", "interface", "demarcationPointIbx", "tetherIbx", "demarcationPoint", "redundancy", "encapsulation", "lagEnabled", "lag", "asn", "package", "settings", "physicalPortQuantity", "notifications", "additionalInfo", "endCustomer", "physicalPorts", "loas", "marketplaceSubscription")); + openapiFields = new HashSet(Arrays.asList("type", "name", "description", "physicalPortsSpeed", "physicalPortsType", "physicalPortsCount", "connectivitySourceType", "bmmrType", "project", "state", "order", "account", "serviceType", "serviceCode", "bandwidth", "location", "device", "interface", "demarcationPointIbx", "tetherIbx", "demarcationPoint", "redundancy", "encapsulation", "lagEnabled", "lag", "asn", "package", "settings", "physicalPortQuantity", "notifications", "additionalInfo", "physicalPorts", "loas")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(Arrays.asList("type", "physicalPortsSpeed", "physicalPortsType", "connectivitySourceType", "account", "location", "encapsulation", "settings")); @@ -1478,10 +1424,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } - // validate the optional field `endCustomer` - if (jsonObj.get("endCustomer") != null && !jsonObj.get("endCustomer").isJsonNull()) { - EndCustomer.validateJsonElement(jsonObj.get("endCustomer")); - } if (jsonObj.get("physicalPorts") != null && !jsonObj.get("physicalPorts").isJsonNull()) { JsonArray jsonArrayphysicalPorts = jsonObj.getAsJsonArray("physicalPorts"); if (jsonArrayphysicalPorts != null) { @@ -1510,10 +1452,6 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } - // validate the optional field `marketplaceSubscription` - if (jsonObj.get("marketplaceSubscription") != null && !jsonObj.get("marketplaceSubscription").isJsonNull()) { - MarketplaceSubscription.validateJsonElement(jsonObj.get("marketplaceSubscription")); - } } public static class CustomTypeAdapterFactory implements TypeAdapterFactory { diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortBy.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortBy.java index 51373677..8a81260c 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortBy.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortBy.java @@ -29,7 +29,27 @@ @JsonAdapter(PortSortBy.Adapter.class) public enum PortSortBy { - _DEVICE_NAME("/device/name"); + DEVICE_NAME("/device/name"), + + NAME("/name"), + + STATE("/state"), + + LOCATION_METRONAME("/location/metroName"), + + DEMARCATIONPOINTIBX("/demarcationPointIbx"), + + DEVICE_REDUNDANCY_PRIORITY("/device/redundancy/priority"), + + LAGENABLED("/lagEnabled"), + + PHYSICALPORTSSPEED("/physicalPortsSpeed"), + + ENCAPSULATION_TYPE("/encapsulation/type"), + + PHYSICALPORTS_TETHER_CROSSCONNECTID("/physicalPorts/tether/crossConnectId"), + + PACKAGE_CODE("/package/code"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortCriteria.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortCriteria.java index 5c9f2a34..5bb8d5a3 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortCriteria.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/PortSortCriteria.java @@ -60,7 +60,7 @@ public class PortSortCriteria { public static final String SERIALIZED_NAME_PROPERTY = "property"; @SerializedName(SERIALIZED_NAME_PROPERTY) @javax.annotation.Nullable - private PortSortBy property = PortSortBy._DEVICE_NAME; + private PortSortBy property = PortSortBy.DEVICE_NAME; public PortSortCriteria() { } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProductType.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProductType.java index 78ad5faf..b098c51e 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProductType.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProductType.java @@ -37,7 +37,9 @@ public enum ProductType { CLOUD_ROUTER_PRODUCT("CLOUD_ROUTER_PRODUCT"), - PRECISION_TIME_PRODUCT("PRECISION_TIME_PRODUCT"); + PRECISION_TIME_PRODUCT("PRECISION_TIME_PRODUCT"), + + METRO_CONNECT_PRODUCT("METRO_CONNECT_PRODUCT"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProviderStatus.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProviderStatus.java index 6c42bbc9..b356b5af 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProviderStatus.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ProviderStatus.java @@ -51,18 +51,8 @@ public enum ProviderStatus { PENDING_BGP("PENDING_BGP"), - OUT_OF_BANDWIDTH("OUT_OF_BANDWIDTH"), - - DELETED("DELETED"), - ERROR("ERROR"), - ERRORED("ERRORED"), - - NOTPROVISIONED("NOTPROVISIONED"), - - NOT_PROVISIONED("NOT_PROVISIONED"), - ORDERING("ORDERING"), DELETING("DELETING"), diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RaAttachmentSortItem.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RaAttachmentSortItem.java new file mode 100644 index 00000000..882cc628 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RaAttachmentSortItem.java @@ -0,0 +1,433 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RaAttachmentSortItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RaAttachmentSortItem { + /** + * Possible field names to use on sorting + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + UUID("/uuid"), + + ATTACHMENTSTATUS("/attachmentStatus"), + + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PropertyEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DirectionEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + @javax.annotation.Nullable + private DirectionEnum direction = DirectionEnum.DESC; + + public RaAttachmentSortItem() { + } + + public RaAttachmentSortItem property(@javax.annotation.Nullable 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(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + } + + + public RaAttachmentSortItem direction(@javax.annotation.Nullable DirectionEnum direction) { + this.direction = direction; + return this; + } + + /** + * Sorting direction + * @return direction + */ + @javax.annotation.Nullable + public DirectionEnum getDirection() { + return direction; + } + + public void setDirection(@javax.annotation.Nullable 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 RaAttachmentSortItem instance itself + */ + public RaAttachmentSortItem 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; + } + RaAttachmentSortItem raAttachmentSortItem = (RaAttachmentSortItem) o; + return Objects.equals(this.property, raAttachmentSortItem.property) && + Objects.equals(this.direction, raAttachmentSortItem.direction)&& + Objects.equals(this.additionalProperties, raAttachmentSortItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, direction, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RaAttachmentSortItem {\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(Arrays.asList("property", "direction")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RaAttachmentSortItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RaAttachmentSortItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RaAttachmentSortItem is not found in the empty JSON string", RaAttachmentSortItem.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").toString())); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + PropertyEnum.validateJsonElement(jsonObj.get("property")); + } + if ((jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) && !jsonObj.get("direction").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `direction` to be a primitive type in the JSON string but got `%s`", jsonObj.get("direction").toString())); + } + // validate the optional field `direction` + if (jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) { + DirectionEnum.validateJsonElement(jsonObj.get("direction")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RaAttachmentSortItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RaAttachmentSortItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RaAttachmentSortItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RaAttachmentSortItem 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RaAttachmentSortItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RaAttachmentSortItem 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(Locale.ROOT, "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 RaAttachmentSortItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RaAttachmentSortItem + * @throws IOException if the JSON string is invalid with respect to RaAttachmentSortItem + */ + public static RaAttachmentSortItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RaAttachmentSortItem.class); + } + + /** + * Convert an instance of RaAttachmentSortItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java index b03e1b13..6f0ee59e 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RemoveOperation.java @@ -222,6 +222,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `op` OpEnum.validateJsonElement(jsonObj.get("op")); + // check op value matches "remove" for RemoveOperation + String opValue = jsonObj.get("op").getAsString(); + if (!"remove".equals(opValue)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='remove' for RemoveOperation but got `%s`", opValue)); + } if (!jsonObj.get("path").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java index af7babd0..f73d91ac 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ReplaceOperation.java @@ -248,6 +248,11 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti JsonObject jsonObj = jsonElement.getAsJsonObject(); // validate the required field `op` OpEnum.validateJsonElement(jsonObj.get("op")); + // check op value matches "replace" for ReplaceOperation + String opValue = jsonObj.get("op").getAsString(); + if (!"replace".equals(opValue)) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected op='replace' for ReplaceOperation but got `%s`", opValue)); + } if (!jsonObj.get("path").isJsonPrimitive()) { throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `path` to be a primitive type in the JSON string but got `%s`", jsonObj.get("path").toString())); } diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RfAttachmentSortItem.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RfAttachmentSortItem.java new file mode 100644 index 00000000..df9acb6e --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RfAttachmentSortItem.java @@ -0,0 +1,435 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RfAttachmentSortItem + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RfAttachmentSortItem { + /** + * Possible field names to use on sorting + */ + @JsonAdapter(PropertyEnum.Adapter.class) + public enum PropertyEnum { + TYPE("/type"), + + UUID("/uuid"), + + DIRECTION("/direction"), + + ATTACHMENTSTATUS("/attachmentStatus"), + + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + PropertyEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + DirectionEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + @javax.annotation.Nullable + private DirectionEnum direction = DirectionEnum.DESC; + + public RfAttachmentSortItem() { + } + + public RfAttachmentSortItem property(@javax.annotation.Nullable 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(@javax.annotation.Nullable PropertyEnum property) { + this.property = property; + } + + + public RfAttachmentSortItem direction(@javax.annotation.Nullable DirectionEnum direction) { + this.direction = direction; + return this; + } + + /** + * Sorting direction + * @return direction + */ + @javax.annotation.Nullable + public DirectionEnum getDirection() { + return direction; + } + + public void setDirection(@javax.annotation.Nullable 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 RfAttachmentSortItem instance itself + */ + public RfAttachmentSortItem 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; + } + RfAttachmentSortItem rfAttachmentSortItem = (RfAttachmentSortItem) o; + return Objects.equals(this.property, rfAttachmentSortItem.property) && + Objects.equals(this.direction, rfAttachmentSortItem.direction)&& + Objects.equals(this.additionalProperties, rfAttachmentSortItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, direction, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RfAttachmentSortItem {\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(Arrays.asList("property", "direction")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RfAttachmentSortItem + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RfAttachmentSortItem.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RfAttachmentSortItem is not found in the empty JSON string", RfAttachmentSortItem.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("property").toString())); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + PropertyEnum.validateJsonElement(jsonObj.get("property")); + } + if ((jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) && !jsonObj.get("direction").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `direction` to be a primitive type in the JSON string but got `%s`", jsonObj.get("direction").toString())); + } + // validate the optional field `direction` + if (jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) { + DirectionEnum.validateJsonElement(jsonObj.get("direction")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RfAttachmentSortItem.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RfAttachmentSortItem' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RfAttachmentSortItem.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RfAttachmentSortItem 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RfAttachmentSortItem read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RfAttachmentSortItem 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(Locale.ROOT, "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 RfAttachmentSortItem given an JSON string + * + * @param jsonString JSON string + * @return An instance of RfAttachmentSortItem + * @throws IOException if the JSON string is invalid with respect to RfAttachmentSortItem + */ + public static RfAttachmentSortItem fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RfAttachmentSortItem.class); + } + + /** + * Convert an instance of RfAttachmentSortItem to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleAndExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleAndExpression.java new file mode 100644 index 00000000..b0af69b1 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleAndExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AND expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRuleAndExpression { + public static final String SERIALIZED_NAME_AND = "and"; + @SerializedName(SERIALIZED_NAME_AND) + @javax.annotation.Nullable + private List and = new ArrayList<>(); + + public RouteAggregationRuleAndExpression() { + } + + public RouteAggregationRuleAndExpression and(@javax.annotation.Nullable List and) { + this.and = and; + return this; + } + + public RouteAggregationRuleAndExpression addAndItem(RouteAggregationRuleExpression 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(@javax.annotation.Nullable 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 RouteAggregationRuleAndExpression instance itself + */ + public RouteAggregationRuleAndExpression 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; + } + RouteAggregationRuleAndExpression routeAggregationRuleAndExpression = (RouteAggregationRuleAndExpression) o; + return Objects.equals(this.and, routeAggregationRuleAndExpression.and)&& + Objects.equals(this.additionalProperties, routeAggregationRuleAndExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(and, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRuleAndExpression {\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(Arrays.asList("and")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRuleAndExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRuleAndExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRuleAndExpression is not found in the empty JSON string", RouteAggregationRuleAndExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + 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(Locale.ROOT, "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++) { + RouteAggregationRuleExpression.validateJsonElement(jsonArrayand.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRuleAndExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRuleAndExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleAndExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRuleAndExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRuleAndExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRuleAndExpression 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(Locale.ROOT, "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 RouteAggregationRuleAndExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRuleAndExpression + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRuleAndExpression + */ + public static RouteAggregationRuleAndExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRuleAndExpression.class); + } + + /** + * Convert an instance of RouteAggregationRuleAndExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleExpression.java new file mode 100644 index 00000000..75c470f0 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleExpression.java @@ -0,0 +1,315 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleAndExpression; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleOrExpression; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleSimpleExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRuleExpression extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(RouteAggregationRuleExpression.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRuleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRuleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterRouteAggregationRuleAndExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleAndExpression.class)); + final TypeAdapter adapterRouteAggregationRuleOrExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleOrExpression.class)); + final TypeAdapter adapterRouteAggregationRuleSimpleExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRuleExpression value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `RouteAggregationRuleAndExpression` + if (value.getActualInstance() instanceof RouteAggregationRuleAndExpression) { + JsonElement element = adapterRouteAggregationRuleAndExpression.toJsonTree((RouteAggregationRuleAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteAggregationRuleOrExpression` + if (value.getActualInstance() instanceof RouteAggregationRuleOrExpression) { + JsonElement element = adapterRouteAggregationRuleOrExpression.toJsonTree((RouteAggregationRuleOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteAggregationRuleSimpleExpression` + if (value.getActualInstance() instanceof RouteAggregationRuleSimpleExpression) { + JsonElement element = adapterRouteAggregationRuleSimpleExpression.toJsonTree((RouteAggregationRuleSimpleExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression"); + } + + @Override + public RouteAggregationRuleExpression read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize RouteAggregationRuleAndExpression + try { + // validate the JSON object to see if any exception is thrown + RouteAggregationRuleAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteAggregationRuleAndExpression; + RouteAggregationRuleExpression ret = new RouteAggregationRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteAggregationRuleAndExpression'", e); + } + // deserialize RouteAggregationRuleOrExpression + try { + // validate the JSON object to see if any exception is thrown + RouteAggregationRuleOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteAggregationRuleOrExpression; + RouteAggregationRuleExpression ret = new RouteAggregationRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteAggregationRuleOrExpression'", e); + } + // deserialize RouteAggregationRuleSimpleExpression + try { + // validate the JSON object to see if any exception is thrown + RouteAggregationRuleSimpleExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteAggregationRuleSimpleExpression; + RouteAggregationRuleExpression ret = new RouteAggregationRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleSimpleExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteAggregationRuleSimpleExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for RouteAggregationRuleExpression: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public RouteAggregationRuleExpression() { + super("anyOf", Boolean.FALSE); + } + + public RouteAggregationRuleExpression(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("RouteAggregationRuleAndExpression", RouteAggregationRuleAndExpression.class); + schemas.put("RouteAggregationRuleOrExpression", RouteAggregationRuleOrExpression.class); + schemas.put("RouteAggregationRuleSimpleExpression", RouteAggregationRuleSimpleExpression.class); + } + + @Override + public Map> getSchemas() { + return RouteAggregationRuleExpression.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof RouteAggregationRuleAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteAggregationRuleOrExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteAggregationRuleSimpleExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression"); + } + + /** + * Get the actual instance, which can be the following: + * RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression + * + * @return The actual instance (RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteAggregationRuleAndExpression`. If the actual instance is not `RouteAggregationRuleAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteAggregationRuleAndExpression` + * @throws ClassCastException if the instance is not `RouteAggregationRuleAndExpression` + */ + public RouteAggregationRuleAndExpression getRouteAggregationRuleAndExpression() throws ClassCastException { + return (RouteAggregationRuleAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteAggregationRuleOrExpression`. If the actual instance is not `RouteAggregationRuleOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteAggregationRuleOrExpression` + * @throws ClassCastException if the instance is not `RouteAggregationRuleOrExpression` + */ + public RouteAggregationRuleOrExpression getRouteAggregationRuleOrExpression() throws ClassCastException { + return (RouteAggregationRuleOrExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteAggregationRuleSimpleExpression`. If the actual instance is not `RouteAggregationRuleSimpleExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteAggregationRuleSimpleExpression` + * @throws ClassCastException if the instance is not `RouteAggregationRuleSimpleExpression` + */ + public RouteAggregationRuleSimpleExpression getRouteAggregationRuleSimpleExpression() throws ClassCastException { + return (RouteAggregationRuleSimpleExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRuleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with RouteAggregationRuleAndExpression + try { + RouteAggregationRuleAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteAggregationRuleOrExpression + try { + RouteAggregationRuleOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteAggregationRuleSimpleExpression + try { + RouteAggregationRuleSimpleExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleSimpleExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for RouteAggregationRuleExpression with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of RouteAggregationRuleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRuleExpression + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRuleExpression + */ + public static RouteAggregationRuleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRuleExpression.class); + } + + /** + * Convert an instance of RouteAggregationRuleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleOrExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleOrExpression.java new file mode 100644 index 00000000..b18c7f0e --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleOrExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * OR expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRuleOrExpression { + public static final String SERIALIZED_NAME_OR = "or"; + @SerializedName(SERIALIZED_NAME_OR) + @javax.annotation.Nullable + private List or = new ArrayList<>(); + + public RouteAggregationRuleOrExpression() { + } + + public RouteAggregationRuleOrExpression or(@javax.annotation.Nullable List or) { + this.or = or; + return this; + } + + public RouteAggregationRuleOrExpression addOrItem(RouteAggregationRuleExpression orItem) { + if (this.or == null) { + this.or = new ArrayList<>(); + } + this.or.add(orItem); + return this; + } + + /** + * Get or + * @return or + */ + @javax.annotation.Nullable + public List getOr() { + return or; + } + + public void setOr(@javax.annotation.Nullable List or) { + this.or = or; + } + + /** + * 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 RouteAggregationRuleOrExpression instance itself + */ + public RouteAggregationRuleOrExpression 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; + } + RouteAggregationRuleOrExpression routeAggregationRuleOrExpression = (RouteAggregationRuleOrExpression) o; + return Objects.equals(this.or, routeAggregationRuleOrExpression.or)&& + Objects.equals(this.additionalProperties, routeAggregationRuleOrExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(or, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRuleOrExpression {\n"); + sb.append(" or: ").append(toIndentedString(or)).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(Arrays.asList("or")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRuleOrExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRuleOrExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRuleOrExpression is not found in the empty JSON string", RouteAggregationRuleOrExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("or") != null && !jsonObj.get("or").isJsonNull()) { + JsonArray jsonArrayor = jsonObj.getAsJsonArray("or"); + if (jsonArrayor != null) { + // ensure the json data is an array + if (!jsonObj.get("or").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `or` to be an array in the JSON string but got `%s`", jsonObj.get("or").toString())); + } + + // validate the optional field `or` (array) + for (int i = 0; i < jsonArrayor.size(); i++) { + RouteAggregationRuleExpression.validateJsonElement(jsonArrayor.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRuleOrExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRuleOrExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRuleOrExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRuleOrExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRuleOrExpression 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(Locale.ROOT, "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 RouteAggregationRuleOrExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRuleOrExpression + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRuleOrExpression + */ + public static RouteAggregationRuleOrExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRuleOrExpression.class); + } + + /** + * Convert an instance of RouteAggregationRuleOrExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSimpleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSimpleExpression.java new file mode 100644 index 00000000..b3c10bf4 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSimpleExpression.java @@ -0,0 +1,355 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Simple filter expression with property, operator, and values + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRuleSimpleExpression { + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private String property; + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @javax.annotation.Nullable + private String operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @javax.annotation.Nullable + private List values = new ArrayList<>(); + + public RouteAggregationRuleSimpleExpression() { + } + + public RouteAggregationRuleSimpleExpression property(@javax.annotation.Nullable String property) { + this.property = property; + return this; + } + + /** + * Possible field names to use on filters: * `/type` - Route Aggregation Rules Type * `/name` - Route Aggregation Rules Name * `/uuid` - Route Aggregation Rules uuid * `/state` - Route Aggregation Rules status * `/prefix` - Route Aggregation Rule Prefix + * @return property + */ + @javax.annotation.Nullable + public String getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable String property) { + this.property = property; + } + + + public RouteAggregationRuleSimpleExpression operator(@javax.annotation.Nullable String operator) { + this.operator = operator; + return this; + } + + /** + * Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like + * @return operator + */ + @javax.annotation.Nullable + public String getOperator() { + return operator; + } + + public void setOperator(@javax.annotation.Nullable String operator) { + this.operator = operator; + } + + + public RouteAggregationRuleSimpleExpression values(@javax.annotation.Nullable List values) { + this.values = values; + return this; + } + + public RouteAggregationRuleSimpleExpression 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(@javax.annotation.Nullable 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 RouteAggregationRuleSimpleExpression instance itself + */ + public RouteAggregationRuleSimpleExpression 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; + } + RouteAggregationRuleSimpleExpression routeAggregationRuleSimpleExpression = (RouteAggregationRuleSimpleExpression) o; + return Objects.equals(this.property, routeAggregationRuleSimpleExpression.property) && + Objects.equals(this.operator, routeAggregationRuleSimpleExpression.operator) && + Objects.equals(this.values, routeAggregationRuleSimpleExpression.values)&& + Objects.equals(this.additionalProperties, routeAggregationRuleSimpleExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, operator, values, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRuleSimpleExpression {\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(Arrays.asList("property", "operator", "values")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRuleSimpleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRuleSimpleExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRuleSimpleExpression is not found in the empty JSON string", RouteAggregationRuleSimpleExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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 (!RouteAggregationRuleSimpleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRuleSimpleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRuleSimpleExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRuleSimpleExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRuleSimpleExpression 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(Locale.ROOT, "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 RouteAggregationRuleSimpleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRuleSimpleExpression + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRuleSimpleExpression + */ + public static RouteAggregationRuleSimpleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRuleSimpleExpression.class); + } + + /** + * Convert an instance of RouteAggregationRuleSimpleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortBy.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortBy.java new file mode 100644 index 00000000..d59ec63b --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortBy.java @@ -0,0 +1,88 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import java.util.Locale; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Possible field names to use on sorting + */ +@JsonAdapter(RouteAggregationRuleSortBy.Adapter.class) +public enum RouteAggregationRuleSortBy { + + TYPE("/type"), + + UUID("/uuid"), + + NAME("/name"), + + STATE("/state"), + + PREFIX("/prefix"), + + CHANGELOG_CREATEDDATETIME("/changeLog/createdDateTime"), + + CHANGELOG_UPDATEDDATETIME("/changeLog/updatedDateTime"); + + private String value; + + RouteAggregationRuleSortBy(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteAggregationRuleSortBy fromValue(String value) { + for (RouteAggregationRuleSortBy b : RouteAggregationRuleSortBy.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 RouteAggregationRuleSortBy enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteAggregationRuleSortBy read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteAggregationRuleSortBy.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RouteAggregationRuleSortBy.fromValue(value); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortCriteria.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortCriteria.java new file mode 100644 index 00000000..feb00b3d --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortCriteria.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleSortBy; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleSortDirection; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RouteAggregationRuleSortCriteria + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRuleSortCriteria { + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + @javax.annotation.Nullable + private RouteAggregationRuleSortDirection direction = RouteAggregationRuleSortDirection.DESC; + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private RouteAggregationRuleSortBy property = RouteAggregationRuleSortBy.CHANGELOG_UPDATEDDATETIME; + + public RouteAggregationRuleSortCriteria() { + } + + public RouteAggregationRuleSortCriteria direction(@javax.annotation.Nullable RouteAggregationRuleSortDirection direction) { + this.direction = direction; + return this; + } + + /** + * Get direction + * @return direction + */ + @javax.annotation.Nullable + public RouteAggregationRuleSortDirection getDirection() { + return direction; + } + + public void setDirection(@javax.annotation.Nullable RouteAggregationRuleSortDirection direction) { + this.direction = direction; + } + + + public RouteAggregationRuleSortCriteria property(@javax.annotation.Nullable RouteAggregationRuleSortBy property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public RouteAggregationRuleSortBy getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable RouteAggregationRuleSortBy property) { + this.property = property; + } + + /** + * 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 RouteAggregationRuleSortCriteria instance itself + */ + public RouteAggregationRuleSortCriteria 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; + } + RouteAggregationRuleSortCriteria routeAggregationRuleSortCriteria = (RouteAggregationRuleSortCriteria) o; + return Objects.equals(this.direction, routeAggregationRuleSortCriteria.direction) && + Objects.equals(this.property, routeAggregationRuleSortCriteria.property)&& + Objects.equals(this.additionalProperties, routeAggregationRuleSortCriteria.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(direction, property, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRuleSortCriteria {\n"); + sb.append(" direction: ").append(toIndentedString(direction)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).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(Arrays.asList("direction", "property")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRuleSortCriteria + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRuleSortCriteria.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRuleSortCriteria is not found in the empty JSON string", RouteAggregationRuleSortCriteria.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `direction` + if (jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) { + RouteAggregationRuleSortDirection.validateJsonElement(jsonObj.get("direction")); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + RouteAggregationRuleSortBy.validateJsonElement(jsonObj.get("property")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRuleSortCriteria.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRuleSortCriteria' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleSortCriteria.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRuleSortCriteria 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRuleSortCriteria read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRuleSortCriteria 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(Locale.ROOT, "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 RouteAggregationRuleSortCriteria given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRuleSortCriteria + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRuleSortCriteria + */ + public static RouteAggregationRuleSortCriteria fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRuleSortCriteria.class); + } + + /** + * Convert an instance of RouteAggregationRuleSortCriteria to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortDirection.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortDirection.java new file mode 100644 index 00000000..beae46ae --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRuleSortDirection.java @@ -0,0 +1,78 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import java.util.Locale; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Sorting direction + */ +@JsonAdapter(RouteAggregationRuleSortDirection.Adapter.class) +public enum RouteAggregationRuleSortDirection { + + DESC("DESC"), + + ASC("ASC"); + + private String value; + + RouteAggregationRuleSortDirection(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteAggregationRuleSortDirection fromValue(String value) { + for (RouteAggregationRuleSortDirection b : RouteAggregationRuleSortDirection.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 RouteAggregationRuleSortDirection enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteAggregationRuleSortDirection read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteAggregationRuleSortDirection.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RouteAggregationRuleSortDirection.fromValue(value); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesFilter.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesFilter.java new file mode 100644 index 00000000..7963ca97 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesFilter.java @@ -0,0 +1,270 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleAndExpression; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleExpression; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleOrExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRulesFilter extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(RouteAggregationRulesFilter.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesFilter' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterRouteAggregationRuleAndExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleAndExpression.class)); + final TypeAdapter adapterRouteAggregationRuleOrExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRuleOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesFilter value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `RouteAggregationRuleAndExpression` + if (value.getActualInstance() instanceof RouteAggregationRuleAndExpression) { + JsonElement element = adapterRouteAggregationRuleAndExpression.toJsonTree((RouteAggregationRuleAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteAggregationRuleOrExpression` + if (value.getActualInstance() instanceof RouteAggregationRuleOrExpression) { + JsonElement element = adapterRouteAggregationRuleOrExpression.toJsonTree((RouteAggregationRuleOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression"); + } + + @Override + public RouteAggregationRulesFilter read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize RouteAggregationRuleAndExpression + try { + // validate the JSON object to see if any exception is thrown + RouteAggregationRuleAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteAggregationRuleAndExpression; + RouteAggregationRulesFilter ret = new RouteAggregationRulesFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteAggregationRuleAndExpression'", e); + } + // deserialize RouteAggregationRuleOrExpression + try { + // validate the JSON object to see if any exception is thrown + RouteAggregationRuleOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteAggregationRuleOrExpression; + RouteAggregationRulesFilter ret = new RouteAggregationRulesFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteAggregationRuleOrExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for RouteAggregationRulesFilter: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public RouteAggregationRulesFilter() { + super("anyOf", Boolean.FALSE); + } + + public RouteAggregationRulesFilter(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("RouteAggregationRuleAndExpression", RouteAggregationRuleAndExpression.class); + schemas.put("RouteAggregationRuleOrExpression", RouteAggregationRuleOrExpression.class); + } + + @Override + public Map> getSchemas() { + return RouteAggregationRulesFilter.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof RouteAggregationRuleAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteAggregationRuleOrExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression"); + } + + /** + * Get the actual instance, which can be the following: + * RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression + * + * @return The actual instance (RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteAggregationRuleAndExpression`. If the actual instance is not `RouteAggregationRuleAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteAggregationRuleAndExpression` + * @throws ClassCastException if the instance is not `RouteAggregationRuleAndExpression` + */ + public RouteAggregationRuleAndExpression getRouteAggregationRuleAndExpression() throws ClassCastException { + return (RouteAggregationRuleAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteAggregationRuleOrExpression`. If the actual instance is not `RouteAggregationRuleOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteAggregationRuleOrExpression` + * @throws ClassCastException if the instance is not `RouteAggregationRuleOrExpression` + */ + public RouteAggregationRuleOrExpression getRouteAggregationRuleOrExpression() throws ClassCastException { + return (RouteAggregationRuleOrExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRulesFilter + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with RouteAggregationRuleAndExpression + try { + RouteAggregationRuleAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteAggregationRuleOrExpression + try { + RouteAggregationRuleOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteAggregationRuleOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for RouteAggregationRulesFilter with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of RouteAggregationRulesFilter given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesFilter + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesFilter + */ + public static RouteAggregationRulesFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesFilter.class); + } + + /** + * Convert an instance of RouteAggregationRulesFilter to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchRequest.java new file mode 100644 index 00000000..d24334a1 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchRequest.java @@ -0,0 +1,370 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.PaginationRequest; +import com.equinix.sdk.fabricv4.model.RouteAggregationRuleSortCriteria; +import com.equinix.sdk.fabricv4.model.RouteAggregationRulesFilter; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Search route aggregation rules + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRulesSearchRequest { + public static final String SERIALIZED_NAME_FILTER = "filter"; + @SerializedName(SERIALIZED_NAME_FILTER) + @javax.annotation.Nullable + private RouteAggregationRulesFilter filter; + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private PaginationRequest pagination; + + public static final String SERIALIZED_NAME_SORT = "sort"; + @SerializedName(SERIALIZED_NAME_SORT) + @javax.annotation.Nullable + private List sort = new ArrayList<>(); + + public RouteAggregationRulesSearchRequest() { + } + + public RouteAggregationRulesSearchRequest filter(@javax.annotation.Nullable RouteAggregationRulesFilter filter) { + this.filter = filter; + return this; + } + + /** + * Get filter + * @return filter + */ + @javax.annotation.Nullable + public RouteAggregationRulesFilter getFilter() { + return filter; + } + + public void setFilter(@javax.annotation.Nullable RouteAggregationRulesFilter filter) { + this.filter = filter; + } + + + public RouteAggregationRulesSearchRequest pagination(@javax.annotation.Nullable PaginationRequest pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public PaginationRequest getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable PaginationRequest pagination) { + this.pagination = pagination; + } + + + public RouteAggregationRulesSearchRequest sort(@javax.annotation.Nullable List sort) { + this.sort = sort; + return this; + } + + public RouteAggregationRulesSearchRequest addSortItem(RouteAggregationRuleSortCriteria 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(@javax.annotation.Nullable 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 RouteAggregationRulesSearchRequest instance itself + */ + public RouteAggregationRulesSearchRequest 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; + } + RouteAggregationRulesSearchRequest routeAggregationRulesSearchRequest = (RouteAggregationRulesSearchRequest) o; + return Objects.equals(this.filter, routeAggregationRulesSearchRequest.filter) && + Objects.equals(this.pagination, routeAggregationRulesSearchRequest.pagination) && + Objects.equals(this.sort, routeAggregationRulesSearchRequest.sort)&& + Objects.equals(this.additionalProperties, routeAggregationRulesSearchRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filter, pagination, sort, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesSearchRequest {\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(Arrays.asList("filter", "pagination", "sort")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRulesSearchRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRulesSearchRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRulesSearchRequest is not found in the empty JSON string", RouteAggregationRulesSearchRequest.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `filter` + if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { + RouteAggregationRulesFilter.validateJsonElement(jsonObj.get("filter")); + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + PaginationRequest.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + RouteAggregationRuleSortCriteria.validateJsonElement(jsonArraysort.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesSearchRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesSearchRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesSearchRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesSearchRequest 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRulesSearchRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRulesSearchRequest 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(Locale.ROOT, "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 RouteAggregationRulesSearchRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesSearchRequest + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesSearchRequest + */ + public static RouteAggregationRulesSearchRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesSearchRequest.class); + } + + /** + * Convert an instance of RouteAggregationRulesSearchRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchResponse.java new file mode 100644 index 00000000..b163a3d5 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteAggregationRulesSearchResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.Pagination; +import com.equinix.sdk.fabricv4.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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RouteAggregationRulesSearchResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteAggregationRulesSearchResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public RouteAggregationRulesSearchResponse() { + } + + public RouteAggregationRulesSearchResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public RouteAggregationRulesSearchResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public RouteAggregationRulesSearchResponse 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(@javax.annotation.Nullable 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 RouteAggregationRulesSearchResponse instance itself + */ + public RouteAggregationRulesSearchResponse 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; + } + RouteAggregationRulesSearchResponse routeAggregationRulesSearchResponse = (RouteAggregationRulesSearchResponse) o; + return Objects.equals(this.pagination, routeAggregationRulesSearchResponse.pagination) && + Objects.equals(this.data, routeAggregationRulesSearchResponse.data)&& + Objects.equals(this.additionalProperties, routeAggregationRulesSearchResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteAggregationRulesSearchResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteAggregationRulesSearchResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteAggregationRulesSearchResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteAggregationRulesSearchResponse is not found in the empty JSON string", RouteAggregationRulesSearchResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteAggregationRulesSearchResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteAggregationRulesSearchResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteAggregationRulesSearchResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteAggregationRulesSearchResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteAggregationRulesSearchResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteAggregationRulesSearchResponse 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(Locale.ROOT, "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 RouteAggregationRulesSearchResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteAggregationRulesSearchResponse + * @throws IOException if the JSON string is invalid with respect to RouteAggregationRulesSearchResponse + */ + public static RouteAggregationRulesSearchResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteAggregationRulesSearchResponse.class); + } + + /** + * Convert an instance of RouteAggregationRulesSearchResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleAndExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleAndExpression.java new file mode 100644 index 00000000..a84f7912 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleAndExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * AND expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRuleAndExpression { + public static final String SERIALIZED_NAME_AND = "and"; + @SerializedName(SERIALIZED_NAME_AND) + @javax.annotation.Nullable + private List and = new ArrayList<>(); + + public RouteFilterRuleAndExpression() { + } + + public RouteFilterRuleAndExpression and(@javax.annotation.Nullable List and) { + this.and = and; + return this; + } + + public RouteFilterRuleAndExpression addAndItem(RouteFilterRuleExpression 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(@javax.annotation.Nullable 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 RouteFilterRuleAndExpression instance itself + */ + public RouteFilterRuleAndExpression 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; + } + RouteFilterRuleAndExpression routeFilterRuleAndExpression = (RouteFilterRuleAndExpression) o; + return Objects.equals(this.and, routeFilterRuleAndExpression.and)&& + Objects.equals(this.additionalProperties, routeFilterRuleAndExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(and, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRuleAndExpression {\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(Arrays.asList("and")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRuleAndExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRuleAndExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRuleAndExpression is not found in the empty JSON string", RouteFilterRuleAndExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + 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(Locale.ROOT, "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++) { + RouteFilterRuleExpression.validateJsonElement(jsonArrayand.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRuleAndExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRuleAndExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleAndExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRuleAndExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRuleAndExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRuleAndExpression 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(Locale.ROOT, "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 RouteFilterRuleAndExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRuleAndExpression + * @throws IOException if the JSON string is invalid with respect to RouteFilterRuleAndExpression + */ + public static RouteFilterRuleAndExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRuleAndExpression.class); + } + + /** + * Convert an instance of RouteFilterRuleAndExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleExpression.java new file mode 100644 index 00000000..e0fa500d --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleExpression.java @@ -0,0 +1,315 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleAndExpression; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleOrExpression; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleSimpleExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRuleExpression extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(RouteFilterRuleExpression.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRuleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRuleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterRouteFilterRuleAndExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleAndExpression.class)); + final TypeAdapter adapterRouteFilterRuleOrExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleOrExpression.class)); + final TypeAdapter adapterRouteFilterRuleSimpleExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRuleExpression value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `RouteFilterRuleAndExpression` + if (value.getActualInstance() instanceof RouteFilterRuleAndExpression) { + JsonElement element = adapterRouteFilterRuleAndExpression.toJsonTree((RouteFilterRuleAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteFilterRuleOrExpression` + if (value.getActualInstance() instanceof RouteFilterRuleOrExpression) { + JsonElement element = adapterRouteFilterRuleOrExpression.toJsonTree((RouteFilterRuleOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteFilterRuleSimpleExpression` + if (value.getActualInstance() instanceof RouteFilterRuleSimpleExpression) { + JsonElement element = adapterRouteFilterRuleSimpleExpression.toJsonTree((RouteFilterRuleSimpleExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression"); + } + + @Override + public RouteFilterRuleExpression read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize RouteFilterRuleAndExpression + try { + // validate the JSON object to see if any exception is thrown + RouteFilterRuleAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteFilterRuleAndExpression; + RouteFilterRuleExpression ret = new RouteFilterRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteFilterRuleAndExpression'", e); + } + // deserialize RouteFilterRuleOrExpression + try { + // validate the JSON object to see if any exception is thrown + RouteFilterRuleOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteFilterRuleOrExpression; + RouteFilterRuleExpression ret = new RouteFilterRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteFilterRuleOrExpression'", e); + } + // deserialize RouteFilterRuleSimpleExpression + try { + // validate the JSON object to see if any exception is thrown + RouteFilterRuleSimpleExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteFilterRuleSimpleExpression; + RouteFilterRuleExpression ret = new RouteFilterRuleExpression(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleSimpleExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteFilterRuleSimpleExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for RouteFilterRuleExpression: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public RouteFilterRuleExpression() { + super("anyOf", Boolean.FALSE); + } + + public RouteFilterRuleExpression(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("RouteFilterRuleAndExpression", RouteFilterRuleAndExpression.class); + schemas.put("RouteFilterRuleOrExpression", RouteFilterRuleOrExpression.class); + schemas.put("RouteFilterRuleSimpleExpression", RouteFilterRuleSimpleExpression.class); + } + + @Override + public Map> getSchemas() { + return RouteFilterRuleExpression.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof RouteFilterRuleAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteFilterRuleOrExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteFilterRuleSimpleExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression"); + } + + /** + * Get the actual instance, which can be the following: + * RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression + * + * @return The actual instance (RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteFilterRuleAndExpression`. If the actual instance is not `RouteFilterRuleAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteFilterRuleAndExpression` + * @throws ClassCastException if the instance is not `RouteFilterRuleAndExpression` + */ + public RouteFilterRuleAndExpression getRouteFilterRuleAndExpression() throws ClassCastException { + return (RouteFilterRuleAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteFilterRuleOrExpression`. If the actual instance is not `RouteFilterRuleOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteFilterRuleOrExpression` + * @throws ClassCastException if the instance is not `RouteFilterRuleOrExpression` + */ + public RouteFilterRuleOrExpression getRouteFilterRuleOrExpression() throws ClassCastException { + return (RouteFilterRuleOrExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteFilterRuleSimpleExpression`. If the actual instance is not `RouteFilterRuleSimpleExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteFilterRuleSimpleExpression` + * @throws ClassCastException if the instance is not `RouteFilterRuleSimpleExpression` + */ + public RouteFilterRuleSimpleExpression getRouteFilterRuleSimpleExpression() throws ClassCastException { + return (RouteFilterRuleSimpleExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRuleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with RouteFilterRuleAndExpression + try { + RouteFilterRuleAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteFilterRuleOrExpression + try { + RouteFilterRuleOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteFilterRuleSimpleExpression + try { + RouteFilterRuleSimpleExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleSimpleExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for RouteFilterRuleExpression with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of RouteFilterRuleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRuleExpression + * @throws IOException if the JSON string is invalid with respect to RouteFilterRuleExpression + */ + public static RouteFilterRuleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRuleExpression.class); + } + + /** + * Convert an instance of RouteFilterRuleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleOrExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleOrExpression.java new file mode 100644 index 00000000..d106bf57 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleOrExpression.java @@ -0,0 +1,308 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleExpression; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * OR expression containing multiple filter expressions + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRuleOrExpression { + public static final String SERIALIZED_NAME_OR = "or"; + @SerializedName(SERIALIZED_NAME_OR) + @javax.annotation.Nullable + private List or = new ArrayList<>(); + + public RouteFilterRuleOrExpression() { + } + + public RouteFilterRuleOrExpression or(@javax.annotation.Nullable List or) { + this.or = or; + return this; + } + + public RouteFilterRuleOrExpression addOrItem(RouteFilterRuleExpression orItem) { + if (this.or == null) { + this.or = new ArrayList<>(); + } + this.or.add(orItem); + return this; + } + + /** + * Get or + * @return or + */ + @javax.annotation.Nullable + public List getOr() { + return or; + } + + public void setOr(@javax.annotation.Nullable List or) { + this.or = or; + } + + /** + * 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 RouteFilterRuleOrExpression instance itself + */ + public RouteFilterRuleOrExpression 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; + } + RouteFilterRuleOrExpression routeFilterRuleOrExpression = (RouteFilterRuleOrExpression) o; + return Objects.equals(this.or, routeFilterRuleOrExpression.or)&& + Objects.equals(this.additionalProperties, routeFilterRuleOrExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(or, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRuleOrExpression {\n"); + sb.append(" or: ").append(toIndentedString(or)).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(Arrays.asList("or")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRuleOrExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRuleOrExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRuleOrExpression is not found in the empty JSON string", RouteFilterRuleOrExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (jsonObj.get("or") != null && !jsonObj.get("or").isJsonNull()) { + JsonArray jsonArrayor = jsonObj.getAsJsonArray("or"); + if (jsonArrayor != null) { + // ensure the json data is an array + if (!jsonObj.get("or").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `or` to be an array in the JSON string but got `%s`", jsonObj.get("or").toString())); + } + + // validate the optional field `or` (array) + for (int i = 0; i < jsonArrayor.size(); i++) { + RouteFilterRuleExpression.validateJsonElement(jsonArrayor.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRuleOrExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRuleOrExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRuleOrExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRuleOrExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRuleOrExpression 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(Locale.ROOT, "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 RouteFilterRuleOrExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRuleOrExpression + * @throws IOException if the JSON string is invalid with respect to RouteFilterRuleOrExpression + */ + public static RouteFilterRuleOrExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRuleOrExpression.class); + } + + /** + * Convert an instance of RouteFilterRuleOrExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSimpleExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSimpleExpression.java new file mode 100644 index 00000000..bd776273 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSimpleExpression.java @@ -0,0 +1,355 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Simple filter expression with property, operator, and values + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRuleSimpleExpression { + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private String property; + + public static final String SERIALIZED_NAME_OPERATOR = "operator"; + @SerializedName(SERIALIZED_NAME_OPERATOR) + @javax.annotation.Nullable + private String operator; + + public static final String SERIALIZED_NAME_VALUES = "values"; + @SerializedName(SERIALIZED_NAME_VALUES) + @javax.annotation.Nullable + private List values = new ArrayList<>(); + + public RouteFilterRuleSimpleExpression() { + } + + public RouteFilterRuleSimpleExpression property(@javax.annotation.Nullable String property) { + this.property = property; + return this; + } + + /** + * Possible field names to use on filters: * `/type` - Route Filter Rules Type * `/name` - Route Filter Rules Name * `/uuid` - Route Filter Rules uuid * `/state` - Route Filter Rules status * `/prefix` - Route Filter Rule Prefix * `/prefixMatch` - Route Filter Rule Prefix Match + * @return property + */ + @javax.annotation.Nullable + public String getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable String property) { + this.property = property; + } + + + public RouteFilterRuleSimpleExpression operator(@javax.annotation.Nullable String operator) { + this.operator = operator; + return this; + } + + /** + * Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like + * @return operator + */ + @javax.annotation.Nullable + public String getOperator() { + return operator; + } + + public void setOperator(@javax.annotation.Nullable String operator) { + this.operator = operator; + } + + + public RouteFilterRuleSimpleExpression values(@javax.annotation.Nullable List values) { + this.values = values; + return this; + } + + public RouteFilterRuleSimpleExpression 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(@javax.annotation.Nullable 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 RouteFilterRuleSimpleExpression instance itself + */ + public RouteFilterRuleSimpleExpression 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; + } + RouteFilterRuleSimpleExpression routeFilterRuleSimpleExpression = (RouteFilterRuleSimpleExpression) o; + return Objects.equals(this.property, routeFilterRuleSimpleExpression.property) && + Objects.equals(this.operator, routeFilterRuleSimpleExpression.operator) && + Objects.equals(this.values, routeFilterRuleSimpleExpression.values)&& + Objects.equals(this.additionalProperties, routeFilterRuleSimpleExpression.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(property, operator, values, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRuleSimpleExpression {\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(Arrays.asList("property", "operator", "values")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRuleSimpleExpression + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRuleSimpleExpression.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRuleSimpleExpression is not found in the empty JSON string", RouteFilterRuleSimpleExpression.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) && !jsonObj.get("property").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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").isJsonNull() && !jsonObj.get("values").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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 (!RouteFilterRuleSimpleExpression.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRuleSimpleExpression' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleSimpleExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRuleSimpleExpression 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRuleSimpleExpression read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRuleSimpleExpression 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(Locale.ROOT, "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 RouteFilterRuleSimpleExpression given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRuleSimpleExpression + * @throws IOException if the JSON string is invalid with respect to RouteFilterRuleSimpleExpression + */ + public static RouteFilterRuleSimpleExpression fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRuleSimpleExpression.class); + } + + /** + * Convert an instance of RouteFilterRuleSimpleExpression to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortBy.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortBy.java new file mode 100644 index 00000000..a383ca46 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortBy.java @@ -0,0 +1,90 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import java.util.Locale; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Possible field names to use on sorting + */ +@JsonAdapter(RouteFilterRuleSortBy.Adapter.class) +public enum RouteFilterRuleSortBy { + + TYPE("/type"), + + UUID("/uuid"), + + NAME("/name"), + + STATE("/state"), + + PREFIX("/prefix"), + + PREFIXMATCH("/prefixMatch"), + + CHANGELOG_CREATEDDATETIME("/changeLog/createdDateTime"), + + CHANGELOG_UPDATEDDATETIME("/changeLog/updatedDateTime"); + + private String value; + + RouteFilterRuleSortBy(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteFilterRuleSortBy fromValue(String value) { + for (RouteFilterRuleSortBy b : RouteFilterRuleSortBy.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 RouteFilterRuleSortBy enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteFilterRuleSortBy read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteFilterRuleSortBy.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RouteFilterRuleSortBy.fromValue(value); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortCriteria.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortCriteria.java new file mode 100644 index 00000000..e9d43359 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortCriteria.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleSortBy; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleSortDirection; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RouteFilterRuleSortCriteria + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRuleSortCriteria { + public static final String SERIALIZED_NAME_DIRECTION = "direction"; + @SerializedName(SERIALIZED_NAME_DIRECTION) + @javax.annotation.Nullable + private RouteFilterRuleSortDirection direction = RouteFilterRuleSortDirection.DESC; + + public static final String SERIALIZED_NAME_PROPERTY = "property"; + @SerializedName(SERIALIZED_NAME_PROPERTY) + @javax.annotation.Nullable + private RouteFilterRuleSortBy property = RouteFilterRuleSortBy.CHANGELOG_UPDATEDDATETIME; + + public RouteFilterRuleSortCriteria() { + } + + public RouteFilterRuleSortCriteria direction(@javax.annotation.Nullable RouteFilterRuleSortDirection direction) { + this.direction = direction; + return this; + } + + /** + * Get direction + * @return direction + */ + @javax.annotation.Nullable + public RouteFilterRuleSortDirection getDirection() { + return direction; + } + + public void setDirection(@javax.annotation.Nullable RouteFilterRuleSortDirection direction) { + this.direction = direction; + } + + + public RouteFilterRuleSortCriteria property(@javax.annotation.Nullable RouteFilterRuleSortBy property) { + this.property = property; + return this; + } + + /** + * Get property + * @return property + */ + @javax.annotation.Nullable + public RouteFilterRuleSortBy getProperty() { + return property; + } + + public void setProperty(@javax.annotation.Nullable RouteFilterRuleSortBy property) { + this.property = property; + } + + /** + * 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 RouteFilterRuleSortCriteria instance itself + */ + public RouteFilterRuleSortCriteria 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; + } + RouteFilterRuleSortCriteria routeFilterRuleSortCriteria = (RouteFilterRuleSortCriteria) o; + return Objects.equals(this.direction, routeFilterRuleSortCriteria.direction) && + Objects.equals(this.property, routeFilterRuleSortCriteria.property)&& + Objects.equals(this.additionalProperties, routeFilterRuleSortCriteria.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(direction, property, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRuleSortCriteria {\n"); + sb.append(" direction: ").append(toIndentedString(direction)).append("\n"); + sb.append(" property: ").append(toIndentedString(property)).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(Arrays.asList("direction", "property")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRuleSortCriteria + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRuleSortCriteria.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRuleSortCriteria is not found in the empty JSON string", RouteFilterRuleSortCriteria.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `direction` + if (jsonObj.get("direction") != null && !jsonObj.get("direction").isJsonNull()) { + RouteFilterRuleSortDirection.validateJsonElement(jsonObj.get("direction")); + } + // validate the optional field `property` + if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { + RouteFilterRuleSortBy.validateJsonElement(jsonObj.get("property")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRuleSortCriteria.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRuleSortCriteria' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleSortCriteria.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRuleSortCriteria 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRuleSortCriteria read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRuleSortCriteria 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(Locale.ROOT, "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 RouteFilterRuleSortCriteria given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRuleSortCriteria + * @throws IOException if the JSON string is invalid with respect to RouteFilterRuleSortCriteria + */ + public static RouteFilterRuleSortCriteria fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRuleSortCriteria.class); + } + + /** + * Convert an instance of RouteFilterRuleSortCriteria to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortDirection.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortDirection.java new file mode 100644 index 00000000..97c5ff11 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRuleSortDirection.java @@ -0,0 +1,78 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.google.gson.annotations.SerializedName; + +import java.io.IOException; +import java.util.Locale; +import com.google.gson.TypeAdapter; +import com.google.gson.JsonElement; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; + +/** + * Sorting direction + */ +@JsonAdapter(RouteFilterRuleSortDirection.Adapter.class) +public enum RouteFilterRuleSortDirection { + + DESC("DESC"), + + ASC("ASC"); + + private String value; + + RouteFilterRuleSortDirection(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static RouteFilterRuleSortDirection fromValue(String value) { + for (RouteFilterRuleSortDirection b : RouteFilterRuleSortDirection.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 RouteFilterRuleSortDirection enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public RouteFilterRuleSortDirection read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return RouteFilterRuleSortDirection.fromValue(value); + } + } + + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + RouteFilterRuleSortDirection.fromValue(value); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesFilter.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesFilter.java new file mode 100644 index 00000000..3a01ae98 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesFilter.java @@ -0,0 +1,270 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleAndExpression; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleExpression; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleOrExpression; +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.Arrays; +import java.util.List; + + + +import java.io.IOException; +import java.lang.reflect.Type; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Locale; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonParseException; +import com.google.gson.TypeAdapter; +import com.google.gson.TypeAdapterFactory; +import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonPrimitive; +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 com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonArray; +import com.google.gson.JsonParseException; + +import com.equinix.sdk.fabricv4.JSON; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRulesFilter extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(RouteFilterRulesFilter.class.getName()); + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesFilter.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesFilter' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter adapterRouteFilterRuleAndExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleAndExpression.class)); + final TypeAdapter adapterRouteFilterRuleOrExpression = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRuleOrExpression.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesFilter value) throws IOException { + if (value == null || value.getActualInstance() == null) { + elementAdapter.write(out, null); + return; + } + + // check if the actual instance is of the type `RouteFilterRuleAndExpression` + if (value.getActualInstance() instanceof RouteFilterRuleAndExpression) { + JsonElement element = adapterRouteFilterRuleAndExpression.toJsonTree((RouteFilterRuleAndExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + // check if the actual instance is of the type `RouteFilterRuleOrExpression` + if (value.getActualInstance() instanceof RouteFilterRuleOrExpression) { + JsonElement element = adapterRouteFilterRuleOrExpression.toJsonTree((RouteFilterRuleOrExpression)value.getActualInstance()); + elementAdapter.write(out, element); + return; + } + throw new IOException("Failed to serialize as the type doesn't match anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression"); + } + + @Override + public RouteFilterRulesFilter read(JsonReader in) throws IOException { + Object deserialized = null; + JsonElement jsonElement = elementAdapter.read(in); + + ArrayList errorMessages = new ArrayList<>(); + TypeAdapter actualAdapter = elementAdapter; + + // deserialize RouteFilterRuleAndExpression + try { + // validate the JSON object to see if any exception is thrown + RouteFilterRuleAndExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteFilterRuleAndExpression; + RouteFilterRulesFilter ret = new RouteFilterRulesFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleAndExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteFilterRuleAndExpression'", e); + } + // deserialize RouteFilterRuleOrExpression + try { + // validate the JSON object to see if any exception is thrown + RouteFilterRuleOrExpression.validateJsonElement(jsonElement); + actualAdapter = adapterRouteFilterRuleOrExpression; + RouteFilterRulesFilter ret = new RouteFilterRulesFilter(); + ret.setActualInstance(actualAdapter.fromJsonTree(jsonElement)); + return ret; + } catch (Exception e) { + // deserialization failed, continue + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleOrExpression failed with `%s`.", e.getMessage())); + log.log(Level.FINER, "Input data does not match schema 'RouteFilterRuleOrExpression'", e); + } + + throw new IOException(String.format(Locale.ROOT, "Failed deserialization for RouteFilterRulesFilter: no class matches result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + }.nullSafe(); + } + } + + // store a list of schema names defined in anyOf + public static final Map> schemas = new HashMap>(); + + public RouteFilterRulesFilter() { + super("anyOf", Boolean.FALSE); + } + + public RouteFilterRulesFilter(Object o) { + super("anyOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put("RouteFilterRuleAndExpression", RouteFilterRuleAndExpression.class); + schemas.put("RouteFilterRuleOrExpression", RouteFilterRuleOrExpression.class); + } + + @Override + public Map> getSchemas() { + return RouteFilterRulesFilter.schemas; + } + + /** + * Set the instance that matches the anyOf child schema, check + * the instance parameter is valid against the anyOf child schemas: + * RouteFilterRuleAndExpression, RouteFilterRuleOrExpression + * + * It could be an instance of the 'anyOf' schemas. + */ + @Override + public void setActualInstance(Object instance) { + if (instance instanceof RouteFilterRuleAndExpression) { + super.setActualInstance(instance); + return; + } + + if (instance instanceof RouteFilterRuleOrExpression) { + super.setActualInstance(instance); + return; + } + + throw new RuntimeException("Invalid instance type. Must be RouteFilterRuleAndExpression, RouteFilterRuleOrExpression"); + } + + /** + * Get the actual instance, which can be the following: + * RouteFilterRuleAndExpression, RouteFilterRuleOrExpression + * + * @return The actual instance (RouteFilterRuleAndExpression, RouteFilterRuleOrExpression) + */ + @SuppressWarnings("unchecked") + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteFilterRuleAndExpression`. If the actual instance is not `RouteFilterRuleAndExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteFilterRuleAndExpression` + * @throws ClassCastException if the instance is not `RouteFilterRuleAndExpression` + */ + public RouteFilterRuleAndExpression getRouteFilterRuleAndExpression() throws ClassCastException { + return (RouteFilterRuleAndExpression)super.getActualInstance(); + } + + /** + * Get the actual instance of `RouteFilterRuleOrExpression`. If the actual instance is not `RouteFilterRuleOrExpression`, + * the ClassCastException will be thrown. + * + * @return The actual instance of `RouteFilterRuleOrExpression` + * @throws ClassCastException if the instance is not `RouteFilterRuleOrExpression` + */ + public RouteFilterRuleOrExpression getRouteFilterRuleOrExpression() throws ClassCastException { + return (RouteFilterRuleOrExpression)super.getActualInstance(); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRulesFilter + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + // validate anyOf schemas one by one + ArrayList errorMessages = new ArrayList<>(); + // validate the json string with RouteFilterRuleAndExpression + try { + RouteFilterRuleAndExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleAndExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + // validate the json string with RouteFilterRuleOrExpression + try { + RouteFilterRuleOrExpression.validateJsonElement(jsonElement); + return; + } catch (Exception e) { + errorMessages.add(String.format(Locale.ROOT, "Deserialization for RouteFilterRuleOrExpression failed with `%s`.", e.getMessage())); + // continue to the next one + } + throw new IOException(String.format(Locale.ROOT, "The JSON string is invalid for RouteFilterRulesFilter with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression. no class match the result, expected at least 1. Detailed failure message for anyOf schemas: %s. JSON: %s", errorMessages, jsonElement.toString())); + } + + /** + * Create an instance of RouteFilterRulesFilter given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesFilter + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesFilter + */ + public static RouteFilterRulesFilter fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesFilter.class); + } + + /** + * Convert an instance of RouteFilterRulesFilter to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchRequest.java new file mode 100644 index 00000000..a76c0e2f --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchRequest.java @@ -0,0 +1,370 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.PaginationRequest; +import com.equinix.sdk.fabricv4.model.RouteFilterRuleSortCriteria; +import com.equinix.sdk.fabricv4.model.RouteFilterRulesFilter; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Search route filter rules + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRulesSearchRequest { + public static final String SERIALIZED_NAME_FILTER = "filter"; + @SerializedName(SERIALIZED_NAME_FILTER) + @javax.annotation.Nullable + private RouteFilterRulesFilter filter; + + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private PaginationRequest pagination; + + public static final String SERIALIZED_NAME_SORT = "sort"; + @SerializedName(SERIALIZED_NAME_SORT) + @javax.annotation.Nullable + private List sort = new ArrayList<>(); + + public RouteFilterRulesSearchRequest() { + } + + public RouteFilterRulesSearchRequest filter(@javax.annotation.Nullable RouteFilterRulesFilter filter) { + this.filter = filter; + return this; + } + + /** + * Get filter + * @return filter + */ + @javax.annotation.Nullable + public RouteFilterRulesFilter getFilter() { + return filter; + } + + public void setFilter(@javax.annotation.Nullable RouteFilterRulesFilter filter) { + this.filter = filter; + } + + + public RouteFilterRulesSearchRequest pagination(@javax.annotation.Nullable PaginationRequest pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public PaginationRequest getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable PaginationRequest pagination) { + this.pagination = pagination; + } + + + public RouteFilterRulesSearchRequest sort(@javax.annotation.Nullable List sort) { + this.sort = sort; + return this; + } + + public RouteFilterRulesSearchRequest addSortItem(RouteFilterRuleSortCriteria 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(@javax.annotation.Nullable 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 RouteFilterRulesSearchRequest instance itself + */ + public RouteFilterRulesSearchRequest 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; + } + RouteFilterRulesSearchRequest routeFilterRulesSearchRequest = (RouteFilterRulesSearchRequest) o; + return Objects.equals(this.filter, routeFilterRulesSearchRequest.filter) && + Objects.equals(this.pagination, routeFilterRulesSearchRequest.pagination) && + Objects.equals(this.sort, routeFilterRulesSearchRequest.sort)&& + Objects.equals(this.additionalProperties, routeFilterRulesSearchRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(filter, pagination, sort, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesSearchRequest {\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(Arrays.asList("filter", "pagination", "sort")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRulesSearchRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRulesSearchRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRulesSearchRequest is not found in the empty JSON string", RouteFilterRulesSearchRequest.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `filter` + if (jsonObj.get("filter") != null && !jsonObj.get("filter").isJsonNull()) { + RouteFilterRulesFilter.validateJsonElement(jsonObj.get("filter")); + } + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + PaginationRequest.validateJsonElement(jsonObj.get("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(Locale.ROOT, "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++) { + RouteFilterRuleSortCriteria.validateJsonElement(jsonArraysort.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesSearchRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesSearchRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesSearchRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesSearchRequest 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesSearchRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRulesSearchRequest 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(Locale.ROOT, "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 RouteFilterRulesSearchRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesSearchRequest + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesSearchRequest + */ + public static RouteFilterRulesSearchRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesSearchRequest.class); + } + + /** + * Convert an instance of RouteFilterRulesSearchRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchResponse.java new file mode 100644 index 00000000..01d5fe58 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/RouteFilterRulesSearchResponse.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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.Pagination; +import com.equinix.sdk.fabricv4.model.RouteFilterRulesData; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * RouteFilterRulesSearchResponse + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class RouteFilterRulesSearchResponse { + public static final String SERIALIZED_NAME_PAGINATION = "pagination"; + @SerializedName(SERIALIZED_NAME_PAGINATION) + @javax.annotation.Nullable + private Pagination pagination; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public RouteFilterRulesSearchResponse() { + } + + public RouteFilterRulesSearchResponse pagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + return this; + } + + /** + * Get pagination + * @return pagination + */ + @javax.annotation.Nullable + public Pagination getPagination() { + return pagination; + } + + public void setPagination(@javax.annotation.Nullable Pagination pagination) { + this.pagination = pagination; + } + + + public RouteFilterRulesSearchResponse data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public RouteFilterRulesSearchResponse addDataItem(RouteFilterRulesData dataItem) { + if (this.data == null) { + this.data = new ArrayList<>(); + } + this.data.add(dataItem); + return this; + } + + /** + * List of route filter rules + * @return data + */ + @javax.annotation.Nullable + public List getData() { + return data; + } + + public void setData(@javax.annotation.Nullable 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 RouteFilterRulesSearchResponse instance itself + */ + public RouteFilterRulesSearchResponse 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; + } + RouteFilterRulesSearchResponse routeFilterRulesSearchResponse = (RouteFilterRulesSearchResponse) o; + return Objects.equals(this.pagination, routeFilterRulesSearchResponse.pagination) && + Objects.equals(this.data, routeFilterRulesSearchResponse.data)&& + Objects.equals(this.additionalProperties, routeFilterRulesSearchResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pagination, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RouteFilterRulesSearchResponse {\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(Arrays.asList("pagination", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to RouteFilterRulesSearchResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!RouteFilterRulesSearchResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in RouteFilterRulesSearchResponse is not found in the empty JSON string", RouteFilterRulesSearchResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // validate the optional field `pagination` + if (jsonObj.get("pagination") != null && !jsonObj.get("pagination").isJsonNull()) { + Pagination.validateJsonElement(jsonObj.get("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(Locale.ROOT, "Expected the field `data` to be an array in the JSON string but got `%s`", jsonObj.get("data").toString())); + } + + // validate the optional field `data` (array) + for (int i = 0; i < jsonArraydata.size(); i++) { + RouteFilterRulesData.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!RouteFilterRulesSearchResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'RouteFilterRulesSearchResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(RouteFilterRulesSearchResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, RouteFilterRulesSearchResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public RouteFilterRulesSearchResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + RouteFilterRulesSearchResponse 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(Locale.ROOT, "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 RouteFilterRulesSearchResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of RouteFilterRulesSearchResponse + * @throws IOException if the JSON string is invalid with respect to RouteFilterRulesSearchResponse + */ + public static RouteFilterRulesSearchResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, RouteFilterRulesSearchResponse.class); + } + + /** + * Convert an instance of RouteFilterRulesSearchResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SearchFieldName.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SearchFieldName.java index 3ef008a3..ec76044b 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SearchFieldName.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SearchFieldName.java @@ -47,10 +47,6 @@ public enum SearchFieldName { ASIDE_ACCESSPOINT_ROUTER_UUID("/aSide/accessPoint/router/uuid"), - ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANCTAG("/aSide/accessPoint/linkProtocol/vlanCTag"), - - ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANSTAG("/aSide/accessPoint/linkProtocol/vlanSTag"), - ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMIN("/aSide/accessPoint/linkProtocol/vlanTagMin"), ASIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMAX("/aSide/accessPoint/linkProtocol/vlanTagMax"), @@ -73,8 +69,14 @@ public enum SearchFieldName { ASIDE_SERVICETOKEN_UUID("/aSide/serviceToken/uuid"), + BANDWIDTH("/bandwidth"), + CHANGE_STATUS("/change/status"), + CHANGELOG_CREATEDBY("/changeLog/createdBy"), + + CHANGELOG_CREATEDDATETIME("/changeLog/createdDateTime"), + OPERATION_EQUINIXSTATUS("/operation/equinixStatus"), OPERATION_PROVIDERSTATUS("/operation/providerStatus"), @@ -89,10 +91,6 @@ public enum SearchFieldName { ZSIDE_ACCESSPOINT_AUTHENTICATIONKEY("/zSide/accessPoint/authenticationKey"), - ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANCTAG("/zSide/accessPoint/linkProtocol/vlanCTag"), - - ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANSTAG("/zSide/accessPoint/linkProtocol/vlanSTag"), - ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMIN("/zSide/accessPoint/linkProtocol/vlanTagMin"), ZSIDE_ACCESSPOINT_LINKPROTOCOL_VLANTAGMAX("/zSide/accessPoint/linkProtocol/vlanTagMax"), diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfile.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfile.java index 77979a68..ffd5d2a1 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfile.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfile.java @@ -21,6 +21,7 @@ import com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointCOLO; import com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointType; import com.equinix.sdk.fabricv4.model.ServiceProfileAccessPointVD; +import com.equinix.sdk.fabricv4.model.ServiceProfileChange; import com.equinix.sdk.fabricv4.model.ServiceProfileStateEnum; import com.equinix.sdk.fabricv4.model.ServiceProfileTypeEnum; import com.equinix.sdk.fabricv4.model.ServiceProfileVisibilityEnum; @@ -82,6 +83,11 @@ public class ServiceProfile { @javax.annotation.Nullable private Project project; + public static final String SERIALIZED_NAME_CHANGE = "change"; + @SerializedName(SERIALIZED_NAME_CHANGE) + @javax.annotation.Nullable + private ServiceProfileChange change; + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; @SerializedName(SERIALIZED_NAME_CHANGE_LOG) @javax.annotation.Nullable @@ -239,6 +245,25 @@ public void setProject(@javax.annotation.Nullable Project project) { } + public ServiceProfile change(@javax.annotation.Nullable ServiceProfileChange change) { + this.change = change; + return this; + } + + /** + * Get change + * @return change + */ + @javax.annotation.Nullable + public ServiceProfileChange getChange() { + return change; + } + + public void setChange(@javax.annotation.Nullable ServiceProfileChange change) { + this.change = change; + } + + public ServiceProfile changeLog(@javax.annotation.Nullable Changelog changeLog) { this.changeLog = changeLog; return this; @@ -694,6 +719,7 @@ public boolean equals(Object o) { return Objects.equals(this.state, serviceProfile.state) && Objects.equals(this.account, serviceProfile.account) && Objects.equals(this.project, serviceProfile.project) && + Objects.equals(this.change, serviceProfile.change) && Objects.equals(this.changeLog, serviceProfile.changeLog) && Objects.equals(this.href, serviceProfile.href) && Objects.equals(this.type, serviceProfile.type) && @@ -717,7 +743,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(state, account, project, changeLog, href, type, name, uuid, description, notifications, tags, visibility, allowedEmails, accessPointTypeConfigs, customFields, marketingInfo, ports, virtualDevices, metros, selfProfile, projectId, additionalProperties); + return Objects.hash(state, account, project, change, changeLog, href, type, name, uuid, description, notifications, tags, visibility, allowedEmails, accessPointTypeConfigs, customFields, marketingInfo, ports, virtualDevices, metros, selfProfile, projectId, additionalProperties); } @Override @@ -727,6 +753,7 @@ public String toString() { sb.append(" state: ").append(toIndentedString(state)).append("\n"); sb.append(" account: ").append(toIndentedString(account)).append("\n"); sb.append(" project: ").append(toIndentedString(project)).append("\n"); + sb.append(" change: ").append(toIndentedString(change)).append("\n"); sb.append(" changeLog: ").append(toIndentedString(changeLog)).append("\n"); sb.append(" href: ").append(toIndentedString(href)).append("\n"); sb.append(" type: ").append(toIndentedString(type)).append("\n"); @@ -798,6 +825,10 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti if (jsonObj.get("project") != null && !jsonObj.get("project").isJsonNull()) { Project.validateJsonElement(jsonObj.get("project")); } + // validate the optional field `change` + if (jsonObj.get("change") != null && !jsonObj.get("change").isJsonNull()) { + ServiceProfileChange.validateJsonElement(jsonObj.get("change")); + } // validate the optional field `changeLog` if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { Changelog.validateJsonElement(jsonObj.get("changeLog")); diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionRequest.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionRequest.java new file mode 100644 index 00000000..adbc68bb --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionRequest.java @@ -0,0 +1,322 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Service Profile Action Request + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ServiceProfileActionRequest { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + @javax.annotation.Nullable + private String description; + + public ServiceProfileActionRequest() { + } + + public ServiceProfileActionRequest type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + + public ServiceProfileActionRequest description(@javax.annotation.Nullable String description) { + this.description = description; + return this; + } + + /** + * Action description + * @return description + */ + @javax.annotation.Nullable + public String getDescription() { + return description; + } + + public void setDescription(@javax.annotation.Nullable String description) { + this.description = description; + } + + /** + * 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 ServiceProfileActionRequest instance itself + */ + public ServiceProfileActionRequest 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; + } + ServiceProfileActionRequest serviceProfileActionRequest = (ServiceProfileActionRequest) o; + return Objects.equals(this.type, serviceProfileActionRequest.type) && + Objects.equals(this.description, serviceProfileActionRequest.description)&& + Objects.equals(this.additionalProperties, serviceProfileActionRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, description, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceProfileActionRequest {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).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(Arrays.asList("type", "description")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(Arrays.asList("type")); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServiceProfileActionRequest + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServiceProfileActionRequest.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ServiceProfileActionRequest is not found in the empty JSON string", ServiceProfileActionRequest.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ServiceProfileActionRequest.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if (!jsonObj.get("type").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("description") != null && !jsonObj.get("description").isJsonNull()) && !jsonObj.get("description").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `description` to be a primitive type in the JSON string but got `%s`", jsonObj.get("description").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServiceProfileActionRequest.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServiceProfileActionRequest' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServiceProfileActionRequest.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServiceProfileActionRequest 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ServiceProfileActionRequest read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ServiceProfileActionRequest 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(Locale.ROOT, "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 ServiceProfileActionRequest given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServiceProfileActionRequest + * @throws IOException if the JSON string is invalid with respect to ServiceProfileActionRequest + */ + public static ServiceProfileActionRequest fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServiceProfileActionRequest.class); + } + + /** + * Convert an instance of ServiceProfileActionRequest to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionResponse.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionResponse.java new file mode 100644 index 00000000..15703669 --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileActionResponse.java @@ -0,0 +1,405 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.Changelog; +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.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Service Profile Action Response + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ServiceProfileActionResponse { + public static final String SERIALIZED_NAME_HREF = "href"; + @SerializedName(SERIALIZED_NAME_HREF) + @javax.annotation.Nullable + private URI href; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nullable + private String type; + + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private UUID uuid; + + public static final String SERIALIZED_NAME_COMMENTS = "comments"; + @SerializedName(SERIALIZED_NAME_COMMENTS) + @javax.annotation.Nullable + private String comments; + + public static final String SERIALIZED_NAME_CHANGE_LOG = "changeLog"; + @SerializedName(SERIALIZED_NAME_CHANGE_LOG) + @javax.annotation.Nullable + private Changelog changeLog; + + public ServiceProfileActionResponse() { + } + + public ServiceProfileActionResponse( + URI href + ) { + this(); + this.href = href; + } + + /** + * Service Profile Action URI + * @return href + */ + @javax.annotation.Nullable + public URI getHref() { + return href; + } + + + + public ServiceProfileActionResponse type(@javax.annotation.Nullable String type) { + this.type = type; + return this; + } + + /** + * Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION + * @return type + */ + @javax.annotation.Nullable + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nullable String type) { + this.type = type; + } + + + public ServiceProfileActionResponse uuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + return this; + } + + /** + * Equinix-assigned action identifier + * @return uuid + */ + @javax.annotation.Nullable + public UUID getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable UUID uuid) { + this.uuid = uuid; + } + + + public ServiceProfileActionResponse comments(@javax.annotation.Nullable String comments) { + this.comments = comments; + return this; + } + + /** + * Action comments + * @return comments + */ + @javax.annotation.Nullable + public String getComments() { + return comments; + } + + public void setComments(@javax.annotation.Nullable String comments) { + this.comments = comments; + } + + + public ServiceProfileActionResponse changeLog(@javax.annotation.Nullable Changelog changeLog) { + this.changeLog = changeLog; + return this; + } + + /** + * Get changeLog + * @return changeLog + */ + @javax.annotation.Nullable + public Changelog getChangeLog() { + return changeLog; + } + + public void setChangeLog(@javax.annotation.Nullable 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 ServiceProfileActionResponse instance itself + */ + public ServiceProfileActionResponse 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; + } + ServiceProfileActionResponse serviceProfileActionResponse = (ServiceProfileActionResponse) o; + return Objects.equals(this.href, serviceProfileActionResponse.href) && + Objects.equals(this.type, serviceProfileActionResponse.type) && + Objects.equals(this.uuid, serviceProfileActionResponse.uuid) && + Objects.equals(this.comments, serviceProfileActionResponse.comments) && + Objects.equals(this.changeLog, serviceProfileActionResponse.changeLog)&& + Objects.equals(this.additionalProperties, serviceProfileActionResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(href, type, uuid, comments, changeLog, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceProfileActionResponse {\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(" comments: ").append(toIndentedString(comments)).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(Arrays.asList("href", "type", "uuid", "comments", "changeLog")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServiceProfileActionResponse + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServiceProfileActionResponse.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ServiceProfileActionResponse is not found in the empty JSON string", ServiceProfileActionResponse.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("href") != null && !jsonObj.get("href").isJsonNull()) && !jsonObj.get("href").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "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(Locale.ROOT, "Expected the field `uuid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("uuid").toString())); + } + if ((jsonObj.get("comments") != null && !jsonObj.get("comments").isJsonNull()) && !jsonObj.get("comments").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `comments` to be a primitive type in the JSON string but got `%s`", jsonObj.get("comments").toString())); + } + // validate the optional field `changeLog` + if (jsonObj.get("changeLog") != null && !jsonObj.get("changeLog").isJsonNull()) { + Changelog.validateJsonElement(jsonObj.get("changeLog")); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServiceProfileActionResponse.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServiceProfileActionResponse' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServiceProfileActionResponse.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServiceProfileActionResponse 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ServiceProfileActionResponse read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ServiceProfileActionResponse 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(Locale.ROOT, "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 ServiceProfileActionResponse given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServiceProfileActionResponse + * @throws IOException if the JSON string is invalid with respect to ServiceProfileActionResponse + */ + public static ServiceProfileActionResponse fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServiceProfileActionResponse.class); + } + + /** + * Convert an instance of ServiceProfileActionResponse to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileChange.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileChange.java new file mode 100644 index 00000000..d45d70cc --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceProfileChange.java @@ -0,0 +1,548 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +import com.equinix.sdk.fabricv4.model.JsonPatchOperation; +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.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.Arrays; +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * Current state of latest service profile change + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ServiceProfileChange { + public static final String SERIALIZED_NAME_UUID = "uuid"; + @SerializedName(SERIALIZED_NAME_UUID) + @javax.annotation.Nullable + private String uuid; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + @javax.annotation.Nonnull + private String type; + + /** + * Current outcome of the change flow + */ + @JsonAdapter(StatusEnum.Adapter.class) + public enum StatusEnum { + APPROVED("APPROVED"), + + COMPLETED("COMPLETED"), + + FAILED("FAILED"), + + REJECTED("REJECTED"), + + REQUESTED("REQUESTED"), + + SUBMITTED_FOR_APPROVAL("SUBMITTED_FOR_APPROVAL"); + + 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 void validateJsonElement(JsonElement jsonElement) throws IOException { + String value = jsonElement.getAsString(); + StatusEnum.fromValue(value); + } + } + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + @javax.annotation.Nullable + private StatusEnum status; + + public static final String SERIALIZED_NAME_CREATED_DATE_TIME = "createdDateTime"; + @SerializedName(SERIALIZED_NAME_CREATED_DATE_TIME) + @javax.annotation.Nonnull + private OffsetDateTime createdDateTime; + + public static final String SERIALIZED_NAME_UPDATED_DATE_TIME = "updatedDateTime"; + @SerializedName(SERIALIZED_NAME_UPDATED_DATE_TIME) + @javax.annotation.Nullable + private OffsetDateTime updatedDateTime; + + public static final String SERIALIZED_NAME_INFORMATION = "information"; + @SerializedName(SERIALIZED_NAME_INFORMATION) + @javax.annotation.Nullable + private String information; + + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + @javax.annotation.Nullable + private List data = new ArrayList<>(); + + public ServiceProfileChange() { + } + + public ServiceProfileChange uuid(@javax.annotation.Nullable String uuid) { + this.uuid = uuid; + return this; + } + + /** + * Uniquely identifies a change + * @return uuid + */ + @javax.annotation.Nullable + public String getUuid() { + return uuid; + } + + public void setUuid(@javax.annotation.Nullable String uuid) { + this.uuid = uuid; + } + + + public ServiceProfileChange type(@javax.annotation.Nonnull String type) { + this.type = type; + return this; + } + + /** + * Type of change + * @return type + */ + @javax.annotation.Nonnull + public String getType() { + return type; + } + + public void setType(@javax.annotation.Nonnull String type) { + this.type = type; + } + + + public ServiceProfileChange status(@javax.annotation.Nullable 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(@javax.annotation.Nullable StatusEnum status) { + this.status = status; + } + + + public ServiceProfileChange createdDateTime(@javax.annotation.Nonnull OffsetDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + return this; + } + + /** + * Set when change flow starts + * @return createdDateTime + */ + @javax.annotation.Nonnull + public OffsetDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(@javax.annotation.Nonnull OffsetDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + + public ServiceProfileChange updatedDateTime(@javax.annotation.Nullable 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(@javax.annotation.Nullable OffsetDateTime updatedDateTime) { + this.updatedDateTime = updatedDateTime; + } + + + public ServiceProfileChange information(@javax.annotation.Nullable String information) { + this.information = information; + return this; + } + + /** + * Additional information + * @return information + */ + @javax.annotation.Nullable + public String getInformation() { + return information; + } + + public void setInformation(@javax.annotation.Nullable String information) { + this.information = information; + } + + + public ServiceProfileChange data(@javax.annotation.Nullable List data) { + this.data = data; + return this; + } + + public ServiceProfileChange addDataItem(JsonPatchOperation 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(@javax.annotation.Nullable 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 ServiceProfileChange instance itself + */ + public ServiceProfileChange 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; + } + ServiceProfileChange serviceProfileChange = (ServiceProfileChange) o; + return Objects.equals(this.uuid, serviceProfileChange.uuid) && + Objects.equals(this.type, serviceProfileChange.type) && + Objects.equals(this.status, serviceProfileChange.status) && + Objects.equals(this.createdDateTime, serviceProfileChange.createdDateTime) && + Objects.equals(this.updatedDateTime, serviceProfileChange.updatedDateTime) && + Objects.equals(this.information, serviceProfileChange.information) && + Objects.equals(this.data, serviceProfileChange.data)&& + Objects.equals(this.additionalProperties, serviceProfileChange.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(uuid, type, status, createdDateTime, updatedDateTime, information, data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ServiceProfileChange {\n"); + sb.append(" uuid: ").append(toIndentedString(uuid)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" createdDateTime: ").append(toIndentedString(createdDateTime)).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(" 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(Arrays.asList("uuid", "type", "status", "createdDateTime", "updatedDateTime", "information", "data")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(Arrays.asList("type", "createdDateTime")); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ServiceProfileChange + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ServiceProfileChange.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ServiceProfileChange is not found in the empty JSON string", ServiceProfileChange.openapiRequiredFields.toString())); + } + } + + // check to make sure all required properties/fields are present in the JSON string + for (String requiredField : ServiceProfileChange.openapiRequiredFields) { + if (jsonElement.getAsJsonObject().get(requiredField) == null) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field `%s` is not found in the JSON string: %s", requiredField, jsonElement.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("uuid") != null && !jsonObj.get("uuid").isJsonNull()) && !jsonObj.get("uuid").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "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(Locale.ROOT, "Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString())); + } + if ((jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) && !jsonObj.get("status").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString())); + } + // validate the optional field `status` + if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonNull()) { + StatusEnum.validateJsonElement(jsonObj.get("status")); + } + if ((jsonObj.get("information") != null && !jsonObj.get("information").isJsonNull()) && !jsonObj.get("information").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `information` to be a primitive type in the JSON string but got `%s`", jsonObj.get("information").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(Locale.ROOT, "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++) { + JsonPatchOperation.validateJsonElement(jsonArraydata.get(i)); + }; + } + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ServiceProfileChange.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ServiceProfileChange' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ServiceProfileChange.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ServiceProfileChange 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ServiceProfileChange read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ServiceProfileChange 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(Locale.ROOT, "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 ServiceProfileChange given an JSON string + * + * @param jsonString JSON string + * @return An instance of ServiceProfileChange + * @throws IOException if the JSON string is invalid with respect to ServiceProfileChange + */ + public static ServiceProfileChange fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ServiceProfileChange.class); + } + + /** + * Convert an instance of ServiceProfileChange to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceTokenSearchExpression.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceTokenSearchExpression.java index 1d42b304..03918484 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceTokenSearchExpression.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ServiceTokenSearchExpression.java @@ -58,6 +58,11 @@ public class ServiceTokenSearchExpression { @javax.annotation.Nullable private List and = new ArrayList<>(); + public static final String SERIALIZED_NAME_OR = "or"; + @SerializedName(SERIALIZED_NAME_OR) + @javax.annotation.Nullable + private List or = new ArrayList<>(); + public static final String SERIALIZED_NAME_PROPERTY = "property"; @SerializedName(SERIALIZED_NAME_PROPERTY) @javax.annotation.Nullable @@ -153,6 +158,33 @@ public void setAnd(@javax.annotation.Nullable List } + public ServiceTokenSearchExpression or(@javax.annotation.Nullable List or) { + this.or = or; + return this; + } + + public ServiceTokenSearchExpression addOrItem(ServiceTokenSearchExpression orItem) { + if (this.or == null) { + this.or = new ArrayList<>(); + } + this.or.add(orItem); + return this; + } + + /** + * Get or + * @return or + */ + @javax.annotation.Nullable + public List getOr() { + return or; + } + + public void setOr(@javax.annotation.Nullable List or) { + this.or = or; + } + + public ServiceTokenSearchExpression property(@javax.annotation.Nullable ServiceTokenSearchFieldName property) { this.property = property; return this; @@ -273,6 +305,7 @@ public boolean equals(Object o) { } ServiceTokenSearchExpression serviceTokenSearchExpression = (ServiceTokenSearchExpression) o; return Objects.equals(this.and, serviceTokenSearchExpression.and) && + Objects.equals(this.or, serviceTokenSearchExpression.or) && Objects.equals(this.property, serviceTokenSearchExpression.property) && Objects.equals(this.operator, serviceTokenSearchExpression.operator) && Objects.equals(this.values, serviceTokenSearchExpression.values)&& @@ -281,7 +314,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(and, property, operator, values, additionalProperties); + return Objects.hash(and, or, property, operator, values, additionalProperties); } @Override @@ -289,6 +322,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class ServiceTokenSearchExpression {\n"); sb.append(" and: ").append(toIndentedString(and)).append("\n"); + sb.append(" or: ").append(toIndentedString(or)).append("\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"); @@ -314,7 +348,7 @@ private String toIndentedString(Object o) { static { // a set of all properties/fields (JSON key names) - openapiFields = new HashSet(Arrays.asList("and", "property", "operator", "values")); + openapiFields = new HashSet(Arrays.asList("and", "or", "property", "operator", "values")); // a set of required properties/fields (JSON key names) openapiRequiredFields = new HashSet(0); @@ -347,6 +381,20 @@ public static void validateJsonElement(JsonElement jsonElement) throws IOExcepti }; } } + if (jsonObj.get("or") != null && !jsonObj.get("or").isJsonNull()) { + JsonArray jsonArrayor = jsonObj.getAsJsonArray("or"); + if (jsonArrayor != null) { + // ensure the json data is an array + if (!jsonObj.get("or").isJsonArray()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `or` to be an array in the JSON string but got `%s`", jsonObj.get("or").toString())); + } + + // validate the optional field `or` (array) + for (int i = 0; i < jsonArrayor.size(); i++) { + ServiceTokenSearchExpression.validateJsonElement(jsonArrayor.get(i)); + }; + } + } // validate the optional field `property` if (jsonObj.get("property") != null && !jsonObj.get("property").isJsonNull()) { ServiceTokenSearchFieldName.validateJsonElement(jsonObj.get("property")); diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SimplifiedNotification.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SimplifiedNotification.java index ac80a746..28286ff7 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SimplifiedNotification.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/SimplifiedNotification.java @@ -67,7 +67,11 @@ public enum TypeEnum { ALL("ALL"), - SALES_REP_NOTIFICATIONS("SALES_REP_NOTIFICATIONS"); + SALES_REP_NOTIFICATIONS("SALES_REP_NOTIFICATIONS"), + + TECHNICAL("TECHNICAL"), + + ORDERING("ORDERING"); private String value; diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Sort.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Sort.java index 5c693f75..8c5a54c0 100644 --- a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Sort.java +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/Sort.java @@ -70,7 +70,7 @@ public Sort property(@javax.annotation.Nullable String property) { } /** - * Property to sort by + * Property to sort by((currently supports tags with filter syntax) * @return property */ @javax.annotation.Nullable diff --git a/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ToolCallInformationInner.java b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ToolCallInformationInner.java new file mode 100644 index 00000000..13850c6b --- /dev/null +++ b/services/fabricv4/src/main/java/com/equinix/sdk/fabricv4/model/ToolCallInformationInner.java @@ -0,0 +1,344 @@ +/* + * 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.sdk.fabricv4.model; + +import java.util.Objects; +import java.util.Locale; +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.Arrays; + +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 com.google.gson.TypeAdapter; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Locale; + +import com.equinix.sdk.fabricv4.JSON; + +/** + * ToolCallInformationInner + */ +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", comments = "Generator version: 7.16.0") +public class ToolCallInformationInner { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + @javax.annotation.Nullable + private String name; + + public static final String SERIALIZED_NAME_INPUT = "input"; + @SerializedName(SERIALIZED_NAME_INPUT) + @javax.annotation.Nullable + private String input; + + public static final String SERIALIZED_NAME_RESPONSE = "response"; + @SerializedName(SERIALIZED_NAME_RESPONSE) + @javax.annotation.Nullable + private String response; + + public ToolCallInformationInner() { + } + + public ToolCallInformationInner name(@javax.annotation.Nullable String name) { + this.name = name; + return this; + } + + /** + * Name of tools called + * @return name + */ + @javax.annotation.Nullable + public String getName() { + return name; + } + + public void setName(@javax.annotation.Nullable String name) { + this.name = name; + } + + + public ToolCallInformationInner input(@javax.annotation.Nullable String input) { + this.input = input; + return this; + } + + /** + * Content of the tool request + * @return input + */ + @javax.annotation.Nullable + public String getInput() { + return input; + } + + public void setInput(@javax.annotation.Nullable String input) { + this.input = input; + } + + + public ToolCallInformationInner response(@javax.annotation.Nullable String response) { + this.response = response; + return this; + } + + /** + * Content of the tool response + * @return response + */ + @javax.annotation.Nullable + public String getResponse() { + return response; + } + + public void setResponse(@javax.annotation.Nullable String response) { + this.response = response; + } + + /** + * 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 ToolCallInformationInner instance itself + */ + public ToolCallInformationInner 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; + } + ToolCallInformationInner toolCallInformationInner = (ToolCallInformationInner) o; + return Objects.equals(this.name, toolCallInformationInner.name) && + Objects.equals(this.input, toolCallInformationInner.input) && + Objects.equals(this.response, toolCallInformationInner.response)&& + Objects.equals(this.additionalProperties, toolCallInformationInner.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(name, input, response, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ToolCallInformationInner {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" response: ").append(toIndentedString(response)).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(Arrays.asList("name", "input", "response")); + + // a set of required properties/fields (JSON key names) + openapiRequiredFields = new HashSet(0); + } + + /** + * Validates the JSON Element and throws an exception if issues found + * + * @param jsonElement JSON Element + * @throws IOException if the JSON Element is invalid with respect to ToolCallInformationInner + */ + public static void validateJsonElement(JsonElement jsonElement) throws IOException { + if (jsonElement == null) { + if (!ToolCallInformationInner.openapiRequiredFields.isEmpty()) { // has required fields but JSON element is null + throw new IllegalArgumentException(String.format(Locale.ROOT, "The required field(s) %s in ToolCallInformationInner is not found in the empty JSON string", ToolCallInformationInner.openapiRequiredFields.toString())); + } + } + JsonObject jsonObj = jsonElement.getAsJsonObject(); + if ((jsonObj.get("name") != null && !jsonObj.get("name").isJsonNull()) && !jsonObj.get("name").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("name").toString())); + } + if ((jsonObj.get("input") != null && !jsonObj.get("input").isJsonNull()) && !jsonObj.get("input").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `input` to be a primitive type in the JSON string but got `%s`", jsonObj.get("input").toString())); + } + if ((jsonObj.get("response") != null && !jsonObj.get("response").isJsonNull()) && !jsonObj.get("response").isJsonPrimitive()) { + throw new IllegalArgumentException(String.format(Locale.ROOT, "Expected the field `response` to be a primitive type in the JSON string but got `%s`", jsonObj.get("response").toString())); + } + } + + public static class CustomTypeAdapterFactory implements TypeAdapterFactory { + @SuppressWarnings("unchecked") + @Override + public TypeAdapter create(Gson gson, TypeToken type) { + if (!ToolCallInformationInner.class.isAssignableFrom(type.getRawType())) { + return null; // this class only serializes 'ToolCallInformationInner' and its subtypes + } + final TypeAdapter elementAdapter = gson.getAdapter(JsonElement.class); + final TypeAdapter thisAdapter + = gson.getDelegateAdapter(this, TypeToken.get(ToolCallInformationInner.class)); + + return (TypeAdapter) new TypeAdapter() { + @Override + public void write(JsonWriter out, ToolCallInformationInner 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 { + JsonElement jsonElement = gson.toJsonTree(entry.getValue()); + if (jsonElement.isJsonArray()) { + obj.add(entry.getKey(), jsonElement.getAsJsonArray()); + } else { + obj.add(entry.getKey(), jsonElement.getAsJsonObject()); + } + } + } + } + elementAdapter.write(out, obj); + } + + @Override + public ToolCallInformationInner read(JsonReader in) throws IOException { + JsonElement jsonElement = elementAdapter.read(in); + validateJsonElement(jsonElement); + JsonObject jsonObj = jsonElement.getAsJsonObject(); + // store additional fields in the deserialized instance + ToolCallInformationInner 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(Locale.ROOT, "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 ToolCallInformationInner given an JSON string + * + * @param jsonString JSON string + * @return An instance of ToolCallInformationInner + * @throws IOException if the JSON string is invalid with respect to ToolCallInformationInner + */ + public static ToolCallInformationInner fromJson(String jsonString) throws IOException { + return JSON.getGson().fromJson(jsonString, ToolCallInformationInner.class); + } + + /** + * Convert an instance of ToolCallInformationInner to an JSON string + * + * @return JSON string + */ + public String toJson() { + return JSON.getGson().toJson(this); + } +} + diff --git a/spec/services/fabricv4/oas3.fetched/openapi.yaml b/spec/services/fabricv4/oas3.fetched/openapi.yaml index 6abf222f..9b4f0aca 100644 --- a/spec/services/fabricv4/oas3.fetched/openapi.yaml +++ b/spec/services/fabricv4/oas3.fetched/openapi.yaml @@ -9,7 +9,7 @@ info: license: name: Equinix Inc url: https://developer.equinix.com/agreement - version: "4.27" + version: "4.28" externalDocs: description: Find more information on Equinix Docs Portal url: https://docs.equinix.com/fabric/ @@ -62,6 +62,573 @@ tags: - name: Streams description: Streams paths: + /fabric/v4/agentTemplates: + get: + tags: + - Agent Templates + summary: Get Agent Templates + description: This API provides capability to retrieve agent templates + operationId: getAgentTemplates + 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/AgentTemplateGetAllResponse" + examples: + Example: + $ref: "#/components/examples/AgentTemplatesGetAllResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_500" + "/fabric/v4/agentTemplates/{agentTemplateId}": + get: + tags: + - Agent Templates + summary: Get Agent Template by UUID + description: This API provides capability to retrieve an agent template by uuid + operationId: getAgentTemplateByUuid + parameters: + - name: agentTemplateId + in: path + description: Agent Template UUID + required: true + schema: + $ref: "#/components/schemas/AgentTemplateId" + - 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: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/AgentTemplates" + examples: + AgentByUuidResponse: + $ref: "#/components/examples/AgentTemplatesResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_500" + /fabric/v4/agents: + get: + tags: + - Agents + summary: Get Agents + description: This API provides capability to retrieve agents + operationId: getAgents + 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/AgentGetAllResponse" + examples: + Example: + $ref: "#/components/examples/AgentGetAllResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + post: + tags: + - Agents + summary: Create Agent + description: This API provides capability to create user's agent + operationId: createAgent + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentPostRequest" + examples: + CreateAgent: + $ref: "#/components/examples/AgentPostRequestExample" + required: true + responses: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentPostResponse: + $ref: "#/components/examples/AgentPostResponseExample" + "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/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + "/fabric/v4/agents/{agentId}": + get: + tags: + - Agents + summary: Get Agent by UUID + description: This API provides capability to retrieve an agent by uuid + operationId: getAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentByUuidResponse: + $ref: "#/components/examples/AgentResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + delete: + tags: + - Agents + summary: Delete Agent by UUID + description: This API provides capability to delete an agent by uuid + operationId: deleteAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentDeleteResponse: + $ref: "#/components/examples/AgentDeleteResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + patch: + tags: + - Agents + summary: Update Agent by UUID + description: This API provides capability to update an agent by uuid + operationId: patchAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentPatchRequest" + examples: + PatchAgent: + $ref: "#/components/examples/AgentPatchRequestExample" + required: true + responses: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentPostResponse: + $ref: "#/components/examples/AgentPatchResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + "/fabric/v4/agents/{agentId}/activities": + get: + tags: + - Agents + summary: Get Agent Activities + description: This API provides capability to retrieve an agent activities + operationId: getAgentActivities + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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/AgentGetActivities" + examples: + Example: + $ref: "#/components/examples/AgentActivitiesResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" "/fabric/v4/{asset}/{assetId}/cloudevents": get: tags: @@ -599,10 +1166,8 @@ paths: $ref: "#/components/examples/COLO2AlibabaSPwithDot1q" Colo2Sp-Aws-Primary: $ref: "#/components/examples/COLO2AWSSPwithDot1q-Primary" - Colo2Sp-AzureDot1Q: - $ref: "#/components/examples/COLO2AzureSPwithDot1q-Primary" - Colo2Sp-AzureQinq: - $ref: "#/components/examples/COLO2AzureSPwithQinq-Secondary" + Colo2Sp-Azure-Primary: + $ref: "#/components/examples/COLO2AzureSP-Primary" Colo2Sp-Google: $ref: "#/components/examples/COLO2GoogleSPwithDot1q" Colo2Sp-Ibm_1.0: @@ -719,28 +1284,14 @@ paths: $ref: "#/components/examples/Metal2ServiceToken" Metal2Sp-Generic: $ref: "#/components/examples/Metal2Sp-Generic" - MultiCloudNetwork2Sp-Alibaba: - $ref: "#/components/examples/MCNS2Sp-Alibaba" - MultiCloudNetwork2Sp-Aws: - $ref: "#/components/examples/MCNS2Sp-Aws" - MultiCloudNetwork2Sp-GCP: - $ref: "#/components/examples/MCNS2Sp-GCP" - MultiCloudNetwork2Sp-IBM2: - $ref: "#/components/examples/MCNS2Sp-IBM2" - MultiCloudNetwork2Sp-Azure: - $ref: "#/components/examples/MCNS2Sp-Azure" - MultiCloudNetwork2Sp-OCI: - $ref: "#/components/examples/MCNS2Sp-OCI" Vd2IASp: $ref: "#/components/examples/Vd2IAProfile-Request" Fcr2Metal-Network: $ref: "#/components/examples/Fcr2Metal-Network" Connection-Colo2Sp-GenericDryRunCreate: $ref: "#/components/examples/CreateConnectionDryRunRequest" - IXPublic-Peering-Connection: - $ref: "#/components/examples/IXPublicPeeringConnection" - IXPrivate-Peering-Connection: - $ref: "#/components/examples/IXPrivatePeeringConnection" + IX2Sp-PublicPeering_VC: + $ref: "#/components/examples/IXDedicatedPublicPeeringConnection" required: true responses: "200": @@ -783,6 +1334,8 @@ paths: $ref: "#/components/examples/ConnectionCreateResponse" Colo2Colo-MetroConnect: $ref: "#/components/examples/COLO2COLO-MetroConnect-Response" + Colo2Sp-Azure-Primary: + $ref: "#/components/examples/COLO2AzureSP-Primary-Response" Colo2Sp-Google: $ref: "#/components/examples/COLO2GoogleSPwithDot1q-Response" Colo2Sp-Alibaba: @@ -833,18 +1386,6 @@ paths: $ref: "#/components/examples/Metal2ServiceToken-Response" Metal2Sp-Generic: $ref: "#/components/examples/Metal2Sp-Generic-Response" - MultiCloudNetwork2Sp-Alibaba: - $ref: "#/components/examples/MCNS2Sp-Alibaba-Response" - MultiCloudNetwork2Sp-Aws: - $ref: "#/components/examples/MCNS2Sp-Aws-Response" - MultiCloudNetwork2Sp-GCP: - $ref: "#/components/examples/MCNS2Sp-GCP-Response" - MultiCloudNetwork2Sp-IBM2: - $ref: "#/components/examples/MCNS2Sp-IBM2-Response" - MultiCloudNetwork2Sp-Azure: - $ref: "#/components/examples/MCNS2Sp-Azure-Response" - MultiCloudNetwork2Sp-OCI: - $ref: "#/components/examples/MCNS2Sp-OCI-Response" Fcr2Metal-Network: $ref: "#/components/examples/Fcr2Metal-Network" Colo2Network-EVPLAN_VC: @@ -881,10 +1422,8 @@ paths: $ref: "#/components/examples/Vd2AlibabaSP-Response" Vd2Sp-Google: $ref: "#/components/examples/Vd2GoogleSP-Response" - IXPublic-Peering-Connection: - $ref: "#/components/examples/IXPublicPeeringConnectionResponse" - IXPrivate-Peering-Connection: - $ref: "#/components/examples/IXPrivatePeeringConnectionResponse" + IX2Sp-PublicPeering_VC: + $ref: "#/components/examples/IXDedicatedPublicPeeringConnectionResponse" "400": description: Bad request content: @@ -970,9 +1509,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" + example: + - errorCode: EQ-300005 + errorMessage: You don't have permissions to perform READ operation. Please contact your master administrator to get the right permissions through Equinix Customer Portal or contact Equinix Support (support@equinix.com). "404": description: Not Found content: @@ -2668,11 +3207,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/400" - dryRun: - $ref: "#/components/examples/400_dry_run" + example: + - errorCode: EQ-3000035 + errorMessage: Invalid request body "401": description: Unauthorized content: @@ -2685,9 +3222,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" + example: + - errorCode: EQ-3000197 + errorMessage: User not authorized to perform given action "404": description: Not Found content: @@ -2749,6 +3286,8 @@ paths: $ref: "#/components/examples/PrecisionTimePtpStandardPackage" precisionTimeProductPtpEnterprisePackageCode: $ref: "#/components/examples/PrecisionTimePtpEnterprisePackage" + metroConnectProduct: + $ref: "#/components/examples/MetroConnectProduct" required: true responses: "200": @@ -2772,6 +3311,8 @@ paths: $ref: "#/components/examples/VirtualPortIX" precisionTimeService: $ref: "#/components/examples/PrecisionTimeService" + metroConnect: + $ref: "#/components/examples/MetroConnect" "400": description: Bad Request content: @@ -3387,12 +3928,6 @@ paths: required: true schema: $ref: "#/components/schemas/ServiceProfileId" - - name: If-Match - in: header - description: conditional request - required: true - schema: - type: string requestBody: content: application/json-patch+json: @@ -3401,6 +3936,8 @@ paths: examples: ServiceProfilePatchRequest: $ref: "#/components/examples/ServiceProfilePatchRequest" + ServiceProfilePatchRequestForVisibility: + $ref: "#/components/examples/ServiceProfilePatchRequestForVisibility" required: true responses: "200": @@ -3415,6 +3952,8 @@ paths: examples: ServiceProfile: $ref: "#/components/examples/ServiceProfilePatchResponse" + ServiceProfilePatchResponseForVisibility: + $ref: "#/components/examples/ServiceProfilePatchResponseForVisibility" "400": description: Bad request content: @@ -3451,15 +3990,86 @@ paths: examples: example: $ref: "#/components/examples/sp-404-get" - "412": - description: Precondition Failed + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-500" + "/fabric/v4/serviceProfiles/{serviceProfileId}/actions": + post: + tags: + - Service Profiles + summary: Profile Actions + description: This API provides capability to accept/reject service profile update requests + operationId: createServiceProfileAction + parameters: + - name: serviceProfileId + in: path + description: Service Profile UUID + required: true + schema: + $ref: "#/components/schemas/ServiceProfileId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ServiceProfileActionRequest" + examples: + AcceptProfileUpdate: + $ref: "#/components/examples/ServiceProfileActionRequest" + RejectProfileUpdate: + $ref: "#/components/examples/ServiceProfileActionRejectionRequest" + required: true + responses: + "201": + description: Successful operation + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/ServiceProfileActionResponse" + examples: + ServiceProfileActionResponse: + $ref: "#/components/examples/ServiceProfileActionResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-400" + "401": + description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorList" examples: example: - $ref: "#/components/examples/sp-412" + $ref: "#/components/examples/sp-401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-403-update" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-404-get" "500": description: Internal Server Error content: @@ -4263,7 +4873,11 @@ paths: examples: portDryRunExample: $ref: "#/components/examples/PortCreateDryRunResponse" - "201": + bmmrPortDryRunExample: + $ref: "#/components/examples/bmmrSinglePortCreateDryRunResponse" + remotePortDryRunExample: + $ref: "#/components/examples/remoteSinglePortCreateDryRunResponse" + "202": description: Successful operation content: application/json: @@ -6894,122 +7508,47 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" - /fabric/v4/routeAggregations: + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search": post: tags: - - Route Aggregations - summary: Create Aggregations - description: This API provides capability to create a Route Aggregation - operationId: createRouteAggregation - parameters: [] + - Route Filter Rules + summary: Search Route Filter Rules + description: This API provides capability to search Route Filter Rules + operationId: searchRouteFilterRules + parameters: + - name: routeFilterId + in: path + description: Route Filters Id + required: true + schema: + $ref: "#/components/schemas/RouteFilterId" requestBody: content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsBase" + $ref: "#/components/schemas/RouteFilterRulesSearchRequest" examples: - RouteAggregationBgpIpv4Prefix: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" + SearchRouteFilterRulesAndRequest: + $ref: "#/components/examples/SearchRouteFilterRulesAndRequest" + SearchRouteFilterRulesOrRequest: + $ref: "#/components/examples/SearchRouteFilterRulesOrRequest" required: true - responses: - "202": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/RouteAggregationsData" - examples: - GetSpecificRouteAggregationResponse: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - TransientState: - $ref: "#/components/examples/400_transient_state" - "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" - "/fabric/v4/routeAggregations/{routeAggregationId}": - get: - tags: - - Route Aggregations - summary: Get Aggregation - description: This API provides capability to view a Route Aggregation by UUID - operationId: getRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsData" + $ref: "#/components/schemas/RouteFilterRulesSearchResponse" examples: - GetSpecificRouteAggregationResponse: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" + SearchRouteFilterRulesResponse: + $ref: "#/components/examples/SearchRouteFilterRulesResponse" "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: @@ -7029,91 +7568,11 @@ paths: 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" - delete: - tags: - - Route Aggregations - summary: Delete Aggregation - description: This API provides capability to delete a Route Aggregation - operationId: deleteRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" - responses: - "202": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/RouteAggregationsData" - examples: - RouteAggregationDeleteBgpIpv4PrefixResponse: - $ref: "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/400_attached_connection" - "401": - description: Unauthorized - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/401" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" - "404": - description: Route Aggregation 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" "415": description: Unsupported Media Type content: @@ -7132,33 +7591,22 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" - patch: + /fabric/v4/routeAggregations: + post: tags: - Route Aggregations - summary: Patch Aggregation - description: This API provides capability to partially update a Route Aggregation - operationId: patchRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" + summary: Create Aggregations + description: This API provides capability to create a Route Aggregation + operationId: createRouteAggregation + parameters: [] requestBody: content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsPatchRequest" - examples: - RouteAggregationNamePatchExample: - $ref: "#/components/examples/PatchRouteAggregationName" - application/json-patch+json: - schema: - $ref: "#/components/schemas/RouteAggregationsPatchRequest" + $ref: "#/components/schemas/RouteAggregationsBase" examples: - RouteAggregationNamePatchExample: - $ref: "#/components/examples/PatchRouteAggregationName" + RouteAggregationBgpIpv4Prefix: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" required: true responses: "202": @@ -7168,8 +7616,8 @@ paths: schema: $ref: "#/components/schemas/RouteAggregationsData" examples: - RouteAggregationNamePatchResponse: - $ref: "#/components/examples/RouteAggregationNamePatchResponse" + GetSpecificRouteAggregationResponse: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" "400": description: Bad request content: @@ -7177,8 +7625,257 @@ paths: schema: $ref: "#/components/schemas/ErrorList" examples: - example: - $ref: "#/components/examples/400_invalid_operation" + TransientState: + $ref: "#/components/examples/400_transient_state" + "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" + "/fabric/v4/routeAggregations/{routeAggregationId}": + get: + tags: + - Route Aggregations + summary: Get Aggregation + description: This API provides capability to view a Route Aggregation by UUID + operationId: getRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + GetSpecificRouteAggregationResponse: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" + "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" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/500_internal_error" + delete: + tags: + - Route Aggregations + summary: Delete Aggregation + description: This API provides capability to delete a Route Aggregation + operationId: deleteRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + responses: + "202": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + RouteAggregationDeleteBgpIpv4PrefixResponse: + $ref: "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/400_attached_connection" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/403" + "404": + description: 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" + patch: + tags: + - Route Aggregations + summary: Patch Aggregation + description: This API provides capability to partially update a Route Aggregation + operationId: patchRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsPatchRequest" + examples: + RouteAggregationNamePatchExample: + $ref: "#/components/examples/PatchRouteAggregationName" + application/json-patch+json: + schema: + $ref: "#/components/schemas/RouteAggregationsPatchRequest" + examples: + RouteAggregationNamePatchExample: + $ref: "#/components/examples/PatchRouteAggregationName" + required: true + responses: + "202": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + RouteAggregationNamePatchResponse: + $ref: "#/components/examples/RouteAggregationNamePatchResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/400_invalid_operation" "401": description: Unauthorized content: @@ -8339,6 +9036,89 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search": + post: + tags: + - Route Aggregation Rules + summary: Search Route Aggregation Rules + description: This API provides capability to search Route Aggregation Rules + operationId: searchRouteAggregationRules + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationRulesSearchRequest" + examples: + SearchRouteAggregationRulesAndRequest: + $ref: "#/components/examples/SearchRouteAggregationRulesAndRequest" + SearchRouteAggregationRulesOrRequest: + $ref: "#/components/examples/SearchRouteAggregationRulesOrRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationRulesSearchResponse" + examples: + SearchRouteAggregationRulesResponse: + $ref: "#/components/examples/SearchRouteAggregationRulesResponse" + "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: Route Aggregation Rule ID Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + "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" /fabric/v4/routers: post: tags: @@ -8656,7 +9436,7 @@ paths: tags: - Cloud Routers summary: Get Route Table Actions - description: This API provides capability to fetch action status + description: This API provides capability to fetch all actions for a given cloud router operationId: getCloudRouterActions parameters: - name: routerId @@ -8676,10 +9456,10 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CloudRouterActionResponse" + $ref: "#/components/schemas/CloudRouterActionsSearchResponse" examples: - searchResponseExample: - $ref: "#/components/examples/CloudRouterActionResponse" + routerActionExample: + $ref: "#/components/examples/CloudRouterActionSearchResponse" "400": description: Bad request content: @@ -8833,7 +9613,7 @@ paths: tags: - Cloud Routers summary: Search Route Table Actions - description: This API provides capability to refresh route table and bgp session summary information + description: This API provides capability to search route table actions for a given cloud router operationId: searchRouterActions parameters: - name: routerId @@ -9553,6 +10333,184 @@ paths: $ref: "#/components/examples/error-400" Subnet Overlapping: $ref: "#/components/examples/error-400-overlappingSubnet" + "/fabric/v4/routers/{routerId}/routeFilters/search": + post: + tags: + - Route Filters + summary: Search Cloud Router Route Filter Attachments + description: This API provides capability to search route filter attachments for a given cloud router Beta + operationId: searchCloudRouterRouteFilterAttachments + parameters: + - name: routerId + in: path + description: Cloud Router UUID + required: true + schema: + $ref: "#/components/schemas/RouterId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteFiltersSearchBase" + examples: + searchRouteFiltersRequest: + $ref: "#/components/examples/CloudRouterSearchRouteFiltersRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteFiltersSearchResponse" + examples: + SearchRouteFiltersResponse: + $ref: "#/components/examples/CloudRouterSearchRouteFiltersResponse" + "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 Filter ID Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/404_invalid_id" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/500_internal_error" + "/fabric/v4/routers/{routerId}/routeAggregations/search": + post: + tags: + - Route Aggregations + summary: Search Cloud Router Route Aggregation Attachments + description: This API provides capability to search route aggregation attachments for a given cloud router Beta + operationId: searchCloudRouterRouteAggregationAttachments + parameters: + - name: routerId + in: path + description: Cloud Router UUID + required: true + schema: + $ref: "#/components/schemas/RouterId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteAggregationsSearchBase" + examples: + searchRouteAggregationsRequest: + $ref: "#/components/examples/CloudRouterSearchRouteAggregationsRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteAggregationsSearchResponse" + examples: + SearchRouteAggregationsResponse: + $ref: "#/components/examples/CloudRouterSearchRouteAggregationsResponse" + "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" + "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" /fabric/v4/routers/search: post: tags: @@ -12796,7 +13754,7 @@ paths: delete: tags: - Stream Alert Rules - summary: Update Stream Alert Rules + summary: Delete Stream Alert Rules description: This API provides capability to delete a user's stream alert rule operationId: deleteStreamAlertRuleByUuid parameters: @@ -13612,6 +14570,201 @@ paths: $ref: "#/components/schemas/ErrorList" components: schemas: + AgentTemplateGetAllResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/AgentTemplates" + ErrorList: + type: array + description: List of Error Message + items: + $ref: "#/components/schemas/Error" + AgentTemplateId: + type: string + description: Agent Template UUID + format: uuid + example: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + AgentTemplates: + type: object + properties: + href: + type: string + description: Agent Template URI + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: + type: string + description: type + example: ANO_AGENT_TEMPLATE + uuid: + type: string + description: Equinix-assigned access point identifier + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + name: + maxLength: 50 + minLength: 3 + type: string + description: Equinix-provided agent template name + description: + type: string + description: Equinix-provided agent template description + state: + type: string + description: Agent state + enum: + - PROVISIONING + - PROVISIONED + - REPROVISIONING + - DEPROVISIONING + - DEPROVISIONED + - FAILED + enabled: + type: boolean + description: Equinix-provided agent template enabled status + agentDefinition: + $ref: "#/components/schemas/AgentDefinition" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent Template object + AgentGetAllResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/Agents" + AgentPostRequest: + required: + - agentTemplate + - name + - project + - type + type: object + properties: + type: + type: string + example: ANO_AGENT + name: + maxLength: 50 + minLength: 3 + type: string + description: Customer-provided agent name + description: + maxLength: 500 + minLength: 0 + type: string + description: Customer-provided agent description + enabled: + type: boolean + description: Customer-provided agent enabled status + project: + $ref: "#/components/schemas/Project" + agentTemplate: + $ref: "#/components/schemas/AgentTemplate" + configuration: + $ref: "#/components/schemas/Configuration" + description: Create Agent + AgentTemplate: + type: object + properties: + uuid: + type: string + description: Agent Template Uuid + Configuration: + type: object + properties: + prompt: + type: string + description: Agent configuration prompt to be used for agent specification + Agents: + type: object + properties: + href: + type: string + description: Agent URI + format: uri + readOnly: true + example: https://api.equinix.com/fabric/v4/agents/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: + type: string + description: type + example: ANO_AGENT + uuid: + type: string + description: Equinix-assigned access point identifier + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + name: + type: string + description: Customer-provided agent name + description: + type: string + description: Customer-provided agent description + state: + type: string + description: Agent state + enum: + - PROVISIONING + - PROVISIONED + - REPROVISIONING + - DEPROVISIONING + - DEPROVISIONED + - FAILED + enabled: + type: boolean + description: Customer-provided agent enabled status + project: + $ref: "#/components/schemas/Project" + agentTemplate: + $ref: "#/components/schemas/AgentTemplate" + configuration: + $ref: "#/components/schemas/Configuration" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent object + AgentId: + type: string + description: Agent UUID + format: uuid + example: 557400f8-d360-11e9-bb65-2a2ae2dbcce4 + AgentPatchRequest: + required: + - op + - path + - value + type: object + properties: + path: + type: string + description: path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt + example: /name + op: + type: string + description: Handy shortcut for operation name + example: replace + value: + description: new value for updated parameter + description: Update Agent + AgentGetActivities: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/AgentActivities" CloudEventAssetType: type: string enum: @@ -13624,6 +14777,7 @@ components: - projects - organizations - timeServices + - companyProfiles AssetId: type: string description: Asset UUID @@ -13659,11 +14813,6 @@ components: description: Data returned from the API call. items: $ref: "#/components/schemas/CloudEvent" - ErrorList: - type: array - description: List of Error Message - items: - $ref: "#/components/schemas/Error" CloudEventId: type: string description: Cloud Event UUID @@ -13936,8 +15085,6 @@ components: description: type: string description: Customer-provided connection description - state: - $ref: "#/components/schemas/ConnectionState" change: $ref: "#/components/schemas/Change" operation: @@ -14361,10 +15508,15 @@ components: - = - "!=" - ">" + - ">=" - < + - <= - LIKE + - ILKE - IS NOT NULL - IS NULL + - IN + - BETWEEN values: type: array items: @@ -14386,8 +15538,6 @@ components: - /aSide/accessPoint/account/accountName - /aSide/accessPoint/account/accountNumber - /aSide/accessPoint/router/uuid - - /aSide/accessPoint/linkProtocol/vlanCTag - - /aSide/accessPoint/linkProtocol/vlanSTag - /aSide/accessPoint/linkProtocol/vlanTagMin - /aSide/accessPoint/linkProtocol/vlanTagMax - /aSide/accessPoint/location/metroCode @@ -14399,7 +15549,10 @@ components: - /aSide/accessPoint/virtualDevice/name - /aSide/accessPoint/virtualDevice/uuid - /aSide/serviceToken/uuid + - /bandwidth - /change/status + - /changeLog/createdBy + - /changeLog/createdDateTime - /operation/equinixStatus - /operation/providerStatus - /project/projectId @@ -14407,8 +15560,6 @@ components: - /redundancy/priority - /zSide/accessPoint/account/accountName - /zSide/accessPoint/authenticationKey - - /zSide/accessPoint/linkProtocol/vlanCTag - - /zSide/accessPoint/linkProtocol/vlanSTag - /zSide/accessPoint/linkProtocol/vlanTagMin - /zSide/accessPoint/linkProtocol/vlanTagMax - /zSide/accessPoint/location/metroCode @@ -15073,6 +16224,8 @@ components: - type: object project: $ref: "#/components/schemas/Project" + change: + $ref: "#/components/schemas/ServiceProfileChange" changeLog: description: Seller Account for Service Profile. allOf: @@ -15084,6 +16237,45 @@ components: or more sets of access points (a set per each access point type) fulfilling the provider service. allOf: - $ref: "#/components/schemas/SimplifiedServiceProfile" + ServiceProfileChange: + required: + - createdDateTime + - type + type: object + properties: + uuid: + type: string + description: Uniquely identifies a change + type: + type: string + description: Type of change + example: SERVICE_PROFILE_VISIBILITY_UPDATE + status: + type: string + description: Current outcome of the change flow + enum: + - APPROVED + - COMPLETED + - FAILED + - REJECTED + - REQUESTED + - SUBMITTED_FOR_APPROVAL + createdDateTime: + type: string + description: Set when change flow starts + format: date-time + example: 2020-11-06T07:00:00Z + updatedDateTime: + type: string + description: Set when change object is updated + format: date-time + example: 2020-11-06T07:00:00Z + information: + type: string + description: Additional information + data: + $ref: "#/components/schemas/JsonPatch_1" + description: Current state of latest service profile change ServiceProfileSearchRequest: type: object properties: @@ -15223,6 +16415,43 @@ components: type: object description: value to replace with description: Replace attribute value or sub-resource in the existing model + ServiceProfileActionRequest: + required: + - type + type: object + properties: + type: + type: string + description: "Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION" + example: PROFILE_UPDATE_ACCEPTANCE + description: + type: string + description: Action description + example: Approved to migrate to public + description: Service Profile Action Request + ServiceProfileActionResponse: + type: object + properties: + href: + type: string + description: Service Profile Action URI + format: uri + readOnly: true + type: + type: string + description: "Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION" + example: PROFILE_UPDATE_ACCEPTANCE + uuid: + type: string + description: Equinix-assigned action identifier + format: uuid + comments: + type: string + description: Action comments + example: Approved to migrate to public + changeLog: + $ref: "#/components/schemas/Changelog" + description: Service Profile Action Response ServiceMetros: type: object properties: @@ -15323,6 +16552,8 @@ components: properties: and: $ref: "#/components/schemas/ServiceTokenSearchExpressions" + or: + $ref: "#/components/schemas/ServiceTokenSearchExpressions" property: $ref: "#/components/schemas/ServiceTokenSearchFieldName" operator: @@ -15830,8 +17061,6 @@ components: description: Port additional information items: $ref: "#/components/schemas/PortAdditionalInfo" - endCustomer: - $ref: "#/components/schemas/EndCustomer" physicalPorts: type: array description: Physical ports that implement this port @@ -15842,8 +17071,6 @@ components: description: Port Loas items: $ref: "#/components/schemas/PortLoa" - marketplaceSubscription: - $ref: "#/components/schemas/marketplaceSubscription" description: PortRequest is the Request Object for creating single and bulk fabric ports BulkPortRequest: type: object @@ -16404,6 +17631,118 @@ components: items: $ref: "#/components/schemas/RouteFilterRulesBase" description: Create Route Filter Rule POST request + RouteFilterRulesSearchRequest: + type: object + properties: + filter: + $ref: "#/components/schemas/RouteFilterRulesFilter" + pagination: + $ref: "#/components/schemas/PaginationRequest" + sort: + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleSortCriteria" + description: Search route filter rules + RouteFilterRulesFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/RouteFilterRuleAndExpression" + - $ref: "#/components/schemas/RouteFilterRuleOrExpression" + RouteFilterRuleAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleExpression" + description: AND expression containing multiple filter expressions + RouteFilterRuleExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/RouteFilterRuleAndExpression" + - $ref: "#/components/schemas/RouteFilterRuleOrExpression" + - $ref: "#/components/schemas/RouteFilterRuleSimpleExpression" + RouteFilterRuleOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleExpression" + description: OR expression containing multiple filter expressions + RouteFilterRuleSimpleExpression: + type: object + properties: + property: + type: string + description: | + Possible field names to use on filters: + * `/type` - Route Filter Rules Type + * `/name` - Route Filter Rules Name + * `/uuid` - Route Filter Rules uuid + * `/state` - Route Filter Rules status + * `/prefix` - Route Filter Rule Prefix + * `/prefixMatch` - Route Filter Rule Prefix Match + example: /name + operator: + type: string + description: | + Possible operators to use on filters: + * `=` - equal + * `!=` - not equal + * `[NOT] LIKE` - (not) like + * `[NOT] IN` - (not) in + * `ILIKE` - case-insensitive like + example: = + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + example: Route_Filter_Rule_Demo + description: Simple filter expression with property, operator, and values + RouteFilterRuleSortCriteria: + type: object + properties: + direction: + $ref: "#/components/schemas/RouteFilterRuleSortDirection" + property: + $ref: "#/components/schemas/RouteFilterRuleSortBy" + RouteFilterRuleSortDirection: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + RouteFilterRuleSortBy: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /name + - /state + - /prefix + - /prefixMatch + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + RouteFilterRulesSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route filter rules + items: + $ref: "#/components/schemas/RouteFilterRulesData" RouteAggregationsBase: required: - name @@ -16708,6 +18047,116 @@ components: items: $ref: "#/components/schemas/RouteAggregationRulesBase" description: Create Route Aggregation Rule POST request + RouteAggregationRulesSearchRequest: + type: object + properties: + filter: + $ref: "#/components/schemas/RouteAggregationRulesFilter" + pagination: + $ref: "#/components/schemas/PaginationRequest" + sort: + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleSortCriteria" + description: Search route aggregation rules + RouteAggregationRulesFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/RouteAggregationRuleAndExpression" + - $ref: "#/components/schemas/RouteAggregationRuleOrExpression" + RouteAggregationRuleAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleExpression" + description: AND expression containing multiple filter expressions + RouteAggregationRuleExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/RouteAggregationRuleAndExpression" + - $ref: "#/components/schemas/RouteAggregationRuleOrExpression" + - $ref: "#/components/schemas/RouteAggregationRuleSimpleExpression" + RouteAggregationRuleOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleExpression" + description: OR expression containing multiple filter expressions + RouteAggregationRuleSimpleExpression: + type: object + properties: + property: + type: string + description: | + Possible field names to use on filters: + * `/type` - Route Aggregation Rules Type + * `/name` - Route Aggregation Rules Name + * `/uuid` - Route Aggregation Rules uuid + * `/state` - Route Aggregation Rules status + * `/prefix` - Route Aggregation Rule Prefix + example: /name + operator: + type: string + description: | + Possible operators to use on filters: + * `=` - equal + * `!=` - not equal + * `[NOT] LIKE` - (not) like + * `[NOT] IN` - (not) in + * `ILIKE` - case-insensitive like + example: = + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + example: Route_Aggregation_Rule_Demo + description: Simple filter expression with property, operator, and values + RouteAggregationRuleSortCriteria: + type: object + properties: + direction: + $ref: "#/components/schemas/RouteAggregationRuleSortDirection" + property: + $ref: "#/components/schemas/RouteAggregationRuleSortBy" + RouteAggregationRuleSortDirection: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + RouteAggregationRuleSortBy: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /name + - /state + - /prefix + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + RouteAggregationRulesSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route aggregation rules + items: + $ref: "#/components/schemas/RouteAggregationRulesData" CloudRouterPostRequest: required: - location @@ -16809,6 +18258,26 @@ components: - SUCCEEDED - FAILED - PENDING + CloudRouterActionsSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/CloudRouterActionResponse" + CloudRouterActionRequest: + required: + - type + type: object + properties: + type: + $ref: "#/components/schemas/CloudRouterActionType" + connection: + $ref: "#/components/schemas/RouterActionsConnection" + description: Cloud router action request CloudRouterActionResponse: required: - changeLog @@ -16838,16 +18307,6 @@ components: router: $ref: "#/components/schemas/RouterActionsRouter" description: Cloud router actions response object - CloudRouterActionRequest: - required: - - type - type: object - properties: - type: - $ref: "#/components/schemas/CloudRouterActionType" - connection: - $ref: "#/components/schemas/RouterActionsConnection" - description: Cloud router action request CloudRouterActionsSearchRequest: type: object properties: @@ -16936,16 +18395,6 @@ components: - /changeLog/updatedDateTime - /connection/name - /type - CloudRouterActionsSearchResponse: - type: object - properties: - pagination: - $ref: "#/components/schemas/Pagination" - data: - type: array - description: Data returned from the API call. - items: - $ref: "#/components/schemas/CloudRouterActionResponse" ActionId_1: type: string description: Action UUID @@ -17280,6 +18729,186 @@ components: changeLog: $ref: "#/components/schemas/Changelog" description: Schema representing a Gateway attaching or detaching on a Cloud Router. This schema defines the structure of the response returned when a Gateway is attached or detached to a Cloud Router. + CloudRouterRouteFiltersSearchBase: + type: object + properties: + filter: + $ref: "#/components/schemas/CloudRouterRouteFiltersFilter" + pagination: + $ref: "#/components/schemas/Pagination" + sort: + maxItems: 3 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RfAttachmentSortItem" + CloudRouterRouteFiltersFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteFilterAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterOrExpression" + CloudRouterRouteFilterAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteFilterExpression" + description: AND expression containing multiple filter expressions + CloudRouterRouteFilterExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteFilterAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterOrExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterSimpleExpression" + CloudRouterRouteFilterOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteFilterExpression" + description: OR expression containing multiple filter expressions + CloudRouterRouteFilterSimpleExpression: + type: object + properties: + property: + type: string + enum: + - /type + - /direction + - /attachmentStatus + operator: + type: string + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + RfAttachmentSortItem: + type: object + properties: + property: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /direction + - /attachmentStatus + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + direction: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + CloudRouterRouteFiltersSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route filter attachments for a given cloud router + items: + $ref: "#/components/schemas/ConnectionRouteFilterData" + CloudRouterRouteAggregationsSearchBase: + type: object + properties: + filter: + $ref: "#/components/schemas/CloudRouterRouteAggregationsFilter" + pagination: + $ref: "#/components/schemas/Pagination" + sort: + maxItems: 3 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RaAttachmentSortItem" + CloudRouterRouteAggregationsFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteAggregationAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationOrExpression" + CloudRouterRouteAggregationAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteAggregationExpression" + description: AND expression containing multiple filter expressions + CloudRouterRouteAggregationExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteAggregationAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationOrExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationSimpleExpression" + CloudRouterRouteAggregationOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteAggregationExpression" + description: OR expression containing multiple filter expressions + CloudRouterRouteAggregationSimpleExpression: + type: object + properties: + property: + type: string + enum: + - /type + - /attachmentStatus + operator: + type: string + values: + type: array + items: + type: string + RaAttachmentSortItem: + type: object + properties: + property: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /attachmentStatus + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + direction: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + CloudRouterRouteAggregationsSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route aggregation attachments for a given cloud router + items: + $ref: "#/components/schemas/ConnectionRouteAggregationData" CloudRouterSearchRequest: type: object properties: @@ -18424,6 +20053,8 @@ components: - metros - organizations - projects + - networkEdgeDevices + - companyProfiles StreamAsset: type: object properties: @@ -18902,75 +20533,120 @@ components: properties: type: type: string + example: COMPANY_PROFILE name: maxLength: 50 minLength: 1 type: string + example: Equinix summary: maxLength: 125 minLength: 1 type: string + example: Global interconnection and data center company description: maxLength: 450 minLength: 1 type: string + example: Equinix, Inc. connects the world's leading businesses to their customers, employees and partners inside the most interconnected data centers. notifications: type: array + example: + - type: CONTACT + emails: + - example@example.com + - type: NOTIFICATION + emails: + - example@example.com items: $ref: "#/components/schemas/Notification" webUrl: type: string + example: https://www.equinix.com contactUrl: type: string + example: https://www.equinix.com/contact-us CompanyProfileResponse: type: object properties: href: type: string + example: https://api.equinix.com/fabric/v4/companyProfiles/123e4567-e89b-12d3-a456-426614174000 uuid: type: string + example: 123e4567-e89b-12d3-a456-426614174000 type: type: string + example: COMPANY_PROFILE name: maxLength: 50 minLength: 1 type: string + example: Equinix summary: maxLength: 125 minLength: 1 type: string + example: Global interconnection and data center company description: maxLength: 450 minLength: 1 type: string + example: Equinix, Inc. connects the world's leading businesses to their customers, employees and partners inside the most interconnected data centers. state: $ref: "#/components/schemas/CompanyProfileState" + account: + $ref: "#/components/schemas/CompanyProfileResponse_account" metros: type: array + example: + - href: https://api.equinix.com/fabric/v4/metros/SV + code: SV + name: Silicon Valley items: $ref: "#/components/schemas/CompanyMetro" logo: $ref: "#/components/schemas/CompanyLogo" tags: type: array + example: + - href: https://api.equinix.com/fabric/v4/tags/260af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 260af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/TagResponse" serviceProfiles: type: array + example: + - href: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/CompanyServiceProfile" privateServices: type: array + example: + - href: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + - href: https://api.equinix.com/fabric/v4/privateServices/8a5685a6-063d-41ac-9279-d32431e8d8f6 + uuid: 8a5685a6-063d-41ac-9279-d32431e8d8f6 items: $ref: "#/components/schemas/PrivateService" notifications: type: array + example: + - type: CONTACT + emails: + - example@example.com + - type: NOTIFICATION + emails: + - example@example.com items: $ref: "#/components/schemas/Notification" webUrl: type: string + example: https://www.equinix.com contactUrl: type: string + example: https://www.equinix.com/contact-us change: $ref: "#/components/schemas/CompanyProfileChange" changeLog: @@ -18986,19 +20662,26 @@ components: minLength: 1 type: string description: The operation to perform + example: replace enum: - replace - add - remove + x-enum-varnames: + - REPLACE + - ADD + - REMOVE path: minLength: 1 pattern: ^/ type: string description: JSON Pointer path to the field to modify (e.g., /name, /description, /summary, /webUrl, /notifications) - example: /name + example: /logo value: type: object description: The value to update the field to + example: + uuid: 4cd19a0b-049c-4dfd-a626-ce25bf312495 CompanyProfileSearchRequest: type: object properties: @@ -19026,20 +20709,26 @@ components: values: type: array description: Values to compare against + example: + - PENDING + - PROVISIONED items: type: string CompanyProfileSearchFieldName: type: string description: Searchable field names in company profile + example: /tags/name OperatorEnum: type: string description: Comparison operators for filtering + example: = Sort: type: object properties: property: type: string - description: Property to sort by + description: Property to sort by((currently supports tags with filter syntax) + example: /tags/@name=equinix.fabric.spotlight.category.featured direction: $ref: "#/components/schemas/CompanyProfileSortDirection" CompanyProfileSearchResponse: @@ -19062,15 +20751,20 @@ components: type: type: string description: CompanyProfile Action Type + example: COMPANY_PROFILE_CREATION_ACCEPTANCE comments: type: string description: Optional comments for the action + example: Approving company profile ServiceProfileListResponse: type: object properties: data: type: array description: List of service profiles + example: + - href: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/CompanyServiceProfile" AttachServiceProfileResponse: @@ -19082,15 +20776,19 @@ components: href: type: string description: URL to the attached service profile + example: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the service or attachment + example: SERVICE_PROFILE uuid: type: string description: Unique identifier for the service profile + example: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED TagListResponse: type: object properties: @@ -19134,21 +20832,28 @@ components: href: type: string description: URL to the attached tag + example: https://api.equinix.com/fabric/v4/tags/260af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the tag or attachment + example: TAG uuid: type: string description: Unique identifier for the tag + example: 260af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED PrivateServiceListResponse: type: object properties: data: type: array description: List of private services + example: + - href: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/PrivateService" AttachPrivateServiceResponse: @@ -19160,15 +20865,19 @@ components: href: type: string description: URL to the attached private service + example: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the private service or attachment + example: PRIVATE_SERVICE uuid: type: string description: Unique identifier for the private service + example: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED AttachLogoResponse: required: - type @@ -19178,18 +20887,23 @@ components: href: type: string description: URL to the attached logo + example: https://api.equinix.com/fabric/v4/companyProfiles/123e4567-e89b-12d3-a456-426614174000/logos/logo-uuid type: type: string description: Type of the logo or attachment + example: COMPANY_LOGO uuid: type: string description: Unique identifier for the logo + example: 789e0123-e89b-12d3-a456-426614174000 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED extensionType: type: string description: Extension type of logo + example: .png LogoRequest: required: - description @@ -19207,14 +20921,17 @@ components: minLength: 1 type: string description: Name of the Logo + example: Equinix Logo description: maxLength: 125 minLength: 1 type: string description: Description of the logo + example: Company branding logo type: type: string description: Type of logo + example: COMPANY_LOGO description: Equinix Fabric Logo Request Object LogoResponse: type: object @@ -19230,9 +20947,10 @@ components: type: type: string description: Type of logo + example: COMPANY_LOGO name: type: string - example: GROQ + example: Equinix Logo description: type: string example: Company branding logo @@ -19241,7 +20959,7 @@ components: example: CREATED extensionType: type: string - example: png + example: .png changelog: $ref: "#/components/schemas/Changelog" description: Equinix Fabric Logo Response Object @@ -19266,6 +20984,103 @@ components: type: string description: Display name of the Tag description: Equinix Fabric Tag Request Object + AgentDefinition: + type: object + properties: + url: + type: string + description: Agent Template ReadMe (.md) Definition + Changelog: + type: object + properties: + createdBy: + type: string + description: Created by User Key + example: johnsmith + createdByFullName: + type: string + description: Created by User Full Name + example: John Smith + createdByEmail: + type: string + description: Created by User Email Address + example: john.smith@example.com + createdDateTime: + type: string + description: Created by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + updatedBy: + type: string + description: Updated by User Key + example: johnsmith + updatedByFullName: + type: string + description: Updated by User Full Name + example: John Smith + updatedByEmail: + type: string + description: Updated by User Email Address + example: john.smith@example.com + updatedDateTime: + type: string + description: Updated by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + deletedBy: + type: string + description: Deleted by User Key + example: johnsmith + deletedByFullName: + type: string + description: Deleted by User Full Name + example: John Smith + deletedByEmail: + type: string + description: Deleted by User Email Address + example: john.smith@example.com + deletedDateTime: + type: string + description: Deleted by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + description: Change log + Project: + required: + - projectId + type: object + properties: + projectId: + type: string + description: Subscriber-assigned project ID + example: 44f4c4f8-2f39-494e-838c-d8e640591be5 + AgentActivities: + type: object + properties: + href: + type: string + description: Agent Activities URI + format: uuid + type: + type: string + description: type + example: AGENT_ACTIVITY + uuid: + type: string + description: Equinix-assigned agent operation identifier + format: uuid + readOnly: true + agent: + $ref: "#/components/schemas/Agent" + status: + type: string + description: Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED + example: COMPLETED + metadata: + $ref: "#/components/schemas/AgentActivities_metadata" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent Activities object CloudEventData: type: object properties: @@ -19380,8 +21195,7 @@ components: - IPWAN_VC - IA_VC - MC_VC - - IX_PUBLIC_VC - - IX_PRIVATE_VC + - IX_VC Order: type: object properties: @@ -19406,6 +21220,9 @@ components: type: integer description: Term length in months, valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case). default: 1 + contractedBandwidth: + type: integer + description: Contracted bandwidth SimplifiedNotification: required: - emails @@ -19423,6 +21240,8 @@ components: - PROFILE_LIFECYCLE - ALL - SALES_REP_NOTIFICATIONS + - TECHNICAL + - ORDERING sendInterval: type: string emails: @@ -19452,27 +21271,12 @@ components: $ref: "#/components/schemas/ServiceToken" accessPoint: $ref: "#/components/schemas/AccessPoint" - internetAccess: - $ref: "#/components/schemas/InternetAccess" - companyProfile: - $ref: "#/components/schemas/ConnectionCompanyProfile" - invitation: - $ref: "#/components/schemas/ConnectionInvitation" additionalInfo: type: array description: Any additional information, which is not part of connection metadata or configuration items: $ref: "#/components/schemas/ConnectionSideAdditionalInfo" description: Connection configuration object for each side of multi-segment connection - Project: - required: - - projectId - type: object - properties: - projectId: - type: string - description: Subscriber-assigned project ID - example: 44f4c4f8-2f39-494e-838c-d8e640591be5 ConnectionSideAdditionalInfo: type: object properties: @@ -19527,9 +21331,7 @@ components: - DRAFT - FAILED - PENDING - - PROVISIONED - PROVISIONING - - REPROVISIONING - "" Change: required: @@ -19640,61 +21442,6 @@ components: type: integer description: Reseller customer organization identifier format: int64 - Changelog: - type: object - properties: - createdBy: - type: string - description: Created by User Key - example: johnsmith - createdByFullName: - type: string - description: Created by User Full Name - example: John Smith - createdByEmail: - type: string - description: Created by User Email Address - example: john.smith@example.com - createdDateTime: - type: string - description: Created by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - updatedBy: - type: string - description: Updated by User Key - example: johnsmith - updatedByFullName: - type: string - description: Updated by User Full Name - example: John Smith - updatedByEmail: - type: string - description: Updated by User Email Address - example: john.smith@example.com - updatedDateTime: - type: string - description: Updated by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - deletedBy: - type: string - description: Deleted by User Key - example: johnsmith - deletedByFullName: - type: string - description: Deleted by User Full Name - example: John Smith - deletedByEmail: - type: string - description: Deleted by User Email Address - example: john.smith@example.com - deletedDateTime: - type: string - description: Deleted by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - description: Change log ConnectionChangeOperation: required: - op @@ -20041,6 +21788,25 @@ components: value: $ref: "#/components/schemas/RoutingProtocolBase" description: Routing Protocol change operation data + SimplifiedLocation: + type: object + properties: + metroHref: + type: string + example: https://api.equinix.com/fabric/v4/metros/AM + region: + type: string + example: AMER, APAC, EMEA + metroName: + type: string + example: Amsterdam + metroCode: + type: string + example: AM + ibx: + type: string + example: AM1 + deprecated: true PlatformChangelog: type: object properties: @@ -20180,25 +21946,6 @@ components: enum: - PRIVATE - PUBLIC - SimplifiedLocation: - type: object - properties: - metroHref: - type: string - example: https://api.equinix.com/fabric/v4/metros/AM - region: - type: string - example: AMER, APAC, EMEA - metroName: - type: string - example: Amsterdam - metroCode: - type: string - example: AM - ibx: - type: string - example: AM1 - deprecated: true ServiceProfileStateEnum: type: string description: Equinix assigned state. @@ -20722,6 +22469,16 @@ components: default: /device/name enum: - /device/name + - /name + - /state + - /location/metroName + - /demarcationPointIbx + - /device/redundancy/priority + - /lagEnabled + - /physicalPortsSpeed + - /encapsulation/type + - /physicalPorts/tether/crossConnectId + - /package/code PortPackage: required: - code @@ -22078,6 +23835,32 @@ components: enum: - DESC - ASC + Agent: + type: object + properties: + uuid: + type: string + description: Agent Uuid + format: uuid + type: + type: string + example: ANO_AGENT + ChatMessage: + type: object + properties: + messages: + $ref: "#/components/schemas/Messages" + description: Chat message and tool call information during the agent operation + Messages: + type: array + description: List of chat messages + items: + $ref: "#/components/schemas/Messages_inner" + ToolCallInformation: + type: array + description: List of tools called during the agent operation + items: + $ref: "#/components/schemas/ToolCallInformation_inner" ConnectionPriority: type: string description: Connection priority in redundancy group @@ -22122,8 +23905,6 @@ components: $ref: "#/components/schemas/VirtualNetwork" interconnection: $ref: "#/components/schemas/MetalInterconnection" - vpic_interface: - $ref: "#/components/schemas/VpicInterface" role: type: string description: E-Tree network connection role @@ -22184,12 +23965,7 @@ components: - PROVISIONING - REJECTED - PENDING_BGP - - OUT_OF_BANDWIDTH - - DELETED - ERROR - - ERRORED - - NOTPROVISIONED - - NOT_PROVISIONED - ORDERING - DELETING - PENDING DELETE @@ -22202,14 +23978,6 @@ components: - REJECTED - PENDING_DELETE - PROVISIONED - - BEING_REPROVISIONED - - BEING_DEPROVISIONED - - BEING_PROVISIONED - - CREATED - - ERRORED - - PENDING_DEPROVISIONING - - APPROVED - - ORDERING - PENDING_APPROVAL - NOT_PROVISIONED - DEPROVISIONING @@ -22220,16 +23988,11 @@ components: - PENDING_PROVIDER_VLAN - DEPROVISIONED - DELETED - - PENDING_BANDWIDTH_APPROVAL - AUTO_APPROVAL_FAILED - - UPDATE_PENDING - - DELETED_API - - MODIFIED - PENDING_PROVIDER_VLAN_ERROR - DRAFT - CANCELLED - PENDING_INTERFACE_CONFIGURATION - - PENDING_ACTIVATION RouteTableEntryType: type: string description: Route table entry type @@ -22279,6 +24042,7 @@ components: - VIRTUAL_PORT_PRODUCT - CLOUD_ROUTER_PRODUCT - PRECISION_TIME_PRODUCT + - METRO_CONNECT_PRODUCT PriceCharge: type: object properties: @@ -22678,6 +24442,7 @@ components: - NETWORK - METAL_NETWORK - VPIC_INTERFACE + - APP_LINK SimplifiedPort: type: object properties: @@ -23391,6 +25156,11 @@ components: items: $ref: "#/components/schemas/ValidateRequest_filter_and" description: Filters + CompanyProfileResponse_account: + type: object + properties: + rootOrgId: + type: string Response_incomplete_details: type: object properties: @@ -23421,6 +25191,13 @@ components: type: integer description: The number of reasoning tokens. description: A detailed breakdown of the output tokens. + AgentActivities_metadata: + type: object + properties: + chatMessage: + $ref: "#/components/schemas/ChatMessage" + toolCallInformation: + $ref: "#/components/schemas/ToolCallInformation" Metric_resource: type: object properties: @@ -23481,6 +25258,28 @@ components: href: type: string format: uri + Messages_inner: + type: object + properties: + type: + type: string + description: Role of the message sender user or assistant + example: user + content: + type: string + description: Content of the chat message + ToolCallInformation_inner: + type: object + properties: + name: + type: string + description: Name of tools called + input: + type: string + description: Content of the tool request + response: + type: string + description: Content of the tool response VirtualConnectionPriceASide_accessPoint_port_settings: type: object properties: @@ -23694,13 +25493,13 @@ components: correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 "403": value: - - errorCode: EQ-3040047 + - errorCode: EQ-3045003 errorMessage: Operation not allowed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Operation not allowed for current user "404": value: - - errorCode: EQ-3040020 + - errorCode: EQ-3045811 errorMessage: uuid not found correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: uuid not found @@ -23720,10 +25519,257 @@ components: reason: The payload format is in an unsupported format "500": value: - - errorCode: EQ-3040030 + - errorCode: EQ-3045004 errorMessage: Internal Server Error correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Internal Server Error + AgentTemplatesGetAllResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agentTemplates/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT_TEMPLATE + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: CONNECTION BANDWIDTH UPGRADER AGENT TEMPLATE + description: connection bandwidth upgrader agent template + state: PROVISIONED + enabled: true + agentDefinition: + url: /equinix/agent-factory/refs/heads/use_pdf_html/agent_factory_schema/equinix/fabric/v1/event_driven/upgrade-bw-primary-connection.md + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214 + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentTemplate_401: + value: + - errorCode: EQ-3164013 + errorMessage: User not found in request or invalid. + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - reason: You are unauthorized to perform this operation + AgentTemplate_403: + value: + - errorCode: EQ-3164013 + errorMessage: Operation not allowed + correlationId: 8a72af9d-23f7-4b90-8237-0987130b42dd + details: Operation not allowed for current user + AgentTemplate_404: + value: + - errorCode: EQ-3164811 + errorMessage: Agent Template not found or already deleted + correlationId: 9b6baf30-3eb0-458c-af8b-fff3fae32bc7 + details: Agent Template not found or already deleted + AgentTemplate_500: + value: + - errorCode: EQ-3164004 + errorMessage: Internal Server Error + correlationId: f9018571-1001-4422-978b-bfa38ed6b92e + details: Internal Server Error + AgentTemplatesResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agentTemplates/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT_TEMPLATE + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: CONNECTION BANDWIDTH UPGRADER AGENT TEMPLATE + description: connection bandwidth upgrader agent template + state: PROVISIONED + enabled: true + agentDefinition: + url: /equinix/agent-factory/refs/heads/use_pdf_html/agent_factory_schema/equinix/fabric/v1/event_driven/upgrade-bw-primary-connection.md + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214 + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentGetAllResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONED + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + Agent_401: + value: + - errorCode: EQ-3164013 + errorMessage: User not found in request or invalid. + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - reason: You are unauthorized to perform this operation + Agent_403: + value: + - errorCode: EQ-3164013 + errorMessage: Operation not allowed + correlationId: 8a72af9d-23f7-4b90-8237-0987130b42dd + details: Operation not allowed for current user + Agent_404: + value: + - errorCode: EQ-3164811 + errorMessage: Agent not found or already deleted + correlationId: 9b6baf30-3eb0-458c-af8b-fff3fae32bc7 + details: Agent not found or already deleted + Agent_500: + value: + - errorCode: EQ-3164004 + errorMessage: Internal Server Error + correlationId: f9018571-1001-4422-978b-bfa38ed6b92e + details: Internal Server Error + AgentPostRequestExample: + value: + type: ANO_AGENT + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + AgentPostResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + deletedBy: testuser + deletedDateTime: 2024-05-010T16:21:18.545214Z + Agent_415: + value: + - errorCode: EQ-3164009 + errorMessage: Unsupported media type, please check the request's Content-Type or Content-Encoding + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - property: contentType + reason: The payload format is in an unsupported format + AgentResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + AgentDeleteResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: DEPROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + deletedBy: testuser + deletedDateTime: 2024-05-010T16:21:18.545214Z + AgentPatchRequestExample: + value: + - name: /name + op: /replace + value: bandwidth-upgrader-agent-updated + AgentPatchResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent-updated + description: connection bandwidth upgrader agent updated + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentActivitiesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agents/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/activities + type: AGENT_ACTIVITY + uuid: 123e4567-e89b-12d3-a456-426614174000 + agent: + uuid: 3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: ANO_AGENT + status: COMPLETED + metadata: + chatMessage: + messages: + - type: user + content: |- + Here are additional parameters: json + { + "connection_uuid": "456e4567-e89b-12d3-a456-426614174000", + "operand": "ABOVE", + "critical_threshold": 400000, + "stream_uuid": 789e4567-e89b-12d3-a456-426614174000 + }. Follow the instructions step by step and complete all the operations. + - type: assistant + content: The agent is setup process has been successfully completed. + toolCallInformation: + - name: search_connections + input: '{"query":{"filter":{"and":[{"property":"/uuid","operator":"=","values":["456e4567-e89b-12d3-a456-426614174000"]}]},"pagination":{"limit":5}}}' + response: '{"results":[{"uuid":"456e4567-e89b-12d3-a456-426614174000","name":"Primary Connection","bandwidth":"1Gbps"}]}' + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z get-cloud-events-by-asset-id: value: pagination: @@ -24351,7 +26397,7 @@ components: COLO2AlibabaSPwithDot1q: value: type: EVPL_VC - name: My-Layer2-Connection-3 + name: port2alibaba-connection-1 bandwidth: 1000 redundancy: priority: PRIMARY @@ -24410,57 +26456,54 @@ components: - type: ALL emails: - test@test.com - COLO2AzureSPwithDot1q-Primary: + COLO2AzureSP-Primary: value: type: EVPL_VC - name: Primary-Azure - bandwidth: 1000 + name: port2azure-connection-1 + bandwidth: 100 redundancy: priority: PRIMARY + order: + termLength: 1 aSide: accessPoint: type: COLO port: - uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d + uuid: d166b9ce-79ed-4ea6-8f8b-785fd69f3dcc linkProtocol: type: DOT1Q - vlanTag: 1001 - order: - purchaseOrderNumber: po1234 + vlanTag: 123 zSide: accessPoint: type: SP profile: type: L2_PROFILE - uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c + uuid: a1390b22-abe0-4e93-ad37-85beef9d254a location: metroCode: DC - linkProtocol: - type: QINQ - vlanCTag: 1234 - peeringType: MICROSOFT + peeringType: PRIVATE authenticationKey: xxx-xxx-xxx + project: + projectId: 16799d66-ef43-445c-ba29-d17522d8a131 notifications: - type: ALL emails: - test@test.com - COLO2AzureSPwithQinq-Secondary: + COLO2GoogleSPwithDot1q: value: type: EVPL_VC - name: Secondary-Azure - bandwidth: 1000 + name: My-Layer2-Connection-3 + bandwidth: 50 redundancy: - group: e04db764-f865-470b-8394-d2efdd651577 - priority: SECONDARY + priority: PRIMARY aSide: accessPoint: type: COLO port: uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d linkProtocol: - type: QINQ - vlanSTag: 1001 - vlanCTag: 1002 + type: DOT1Q + vlanTag: 1001 order: purchaseOrderNumber: po1234 zSide: @@ -24471,16 +26514,19 @@ components: uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c location: metroCode: DC - authenticationKey: xxx-xxx-xxx + authenticationKey: xx-xxx-xx-xxxxx/us-west1/1 + sellerRegion: us-west1 + project: + projectId: 16799d66ef43 notifications: - type: ALL emails: - - test@test.com - COLO2GoogleSPwithDot1q: + - fabric@test.com + COLO2IBM_1: value: type: EVPL_VC name: My-Layer2-Connection-3 - bandwidth: 50 + bandwidth: 1000 redundancy: priority: PRIMARY aSide: @@ -24501,15 +26547,18 @@ components: uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c location: metroCode: DC - authenticationKey: xx-xxx-xx-xxxxx/us-west1/1 - sellerRegion: us-west1 - project: - projectId: 16799d66ef43 + authenticationKey: xxx-xxx-xxx + sellerRegion: San Jose 2 notifications: - type: ALL emails: - - fabric@test.com - COLO2IBM_1: + - test@test.com + additionalInfo: + - key: ASN + value: 1234 + - key: Global + value: false + COLO2IBM_2: value: type: EVPL_VC name: My-Layer2-Connection-3 @@ -24545,47 +26594,11 @@ components: value: 1234 - key: Global value: false - COLO2IBM_2: - value: - type: EVPL_VC - name: My-Layer2-Connection-3 - bandwidth: 1000 - redundancy: - priority: PRIMARY - aSide: - accessPoint: - type: COLO - port: - uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d - linkProtocol: - type: DOT1Q - vlanTag: 1001 - order: - purchaseOrderNumber: po1234 - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c - location: - metroCode: DC - authenticationKey: xxx-xxx-xxx - sellerRegion: San Jose 2 - notifications: - - type: ALL - emails: - - test@test.com - additionalInfo: - - key: ASN - value: 1234 - - key: Global - value: false - - key: BGP_IBM_CIDR - value: 172.16.0.18/30 - - key: BGP_CER_CIDR - value: 172.16.0.19/30 - COLO2OracleSPwithDot1q: + - key: BGP_IBM_CIDR + value: 172.16.0.18/30 + - key: BGP_CER_CIDR + value: 172.16.0.19/30 + COLO2OracleSPwithDot1q: value: type: EVPL_VC name: My-Layer2-Connection-3 @@ -26065,171 +28078,6 @@ components: - type: ALL emails: - test@test.com - MCNS2Sp-Alibaba: - value: - type: EVPL_VC - name: My-MCNS2Alibaba-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 4c4b8edf-873b-4c6c-805a-edb2c335bd6c - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east-1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-Aws: - value: - type: EVPL_VC - name: My-MCNS2Aws-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 9127bb72-5f4f-4517-be74-3af7ce612687 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east-1 - project: - projectId: b543e64d-1e13-423a-9d81-4eae7b0e1959 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-GCP: - value: - type: EVPL_VC - name: My-MCNS2GCP-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-IBM2: - value: - type: EVPL_VC - name: My-MCNS2IBM2-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: Washington 2 - additionalInfo: - - key: ASN - value: 12345 - - key: BGP_CER_CIDR - value: 172.16.0.17/30 - - key: BGP_IBM_CIDR - value: 172.16.0.18/30 - - key: Global - value: false - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-Azure: - value: - type: EVPL_VC - name: My-MCNS2Azure-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: a1390b22-bbe0-4e93-ad37-85beef9d254d - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - peeringType: PRIVATE - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-OCI: - value: - type: EVPL_VC - name: My-MCNS2OCI-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 60ef0382-cdaa-44e7-bd36-b803731816b8 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-ashburn-1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com Vd2IAProfile-Request: value: type: IA_VC @@ -26292,43 +28140,20 @@ components: - type: ALL emails: - test@test.com - IXPublicPeeringConnection: + IXDedicatedPublicPeeringConnection: value: - type: IX_PUBLIC_VC - name: Connection-1-Public-Connection - aSide: - accessPoint: - type: COLO - port: - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - zSide: - accessPoint: - type: SP - profile: - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - notifications: - - type: ALL - emails: - - test@test.com - project: - projectId: 03ed2230-604a-494c-bca2-c042d38d80bc - IXPrivatePeeringConnection: - value: - type: IX_PRIVATE_VC - name: Private-Connection-1 + type: IX_VC + name: Virtual-Connection-1 aSide: accessPoint: type: COLO port: uuid: 99e83e59-fd26-4134-b1b3-4c5dea6924d6 - linkProtocol: - type: DOT1Q - vlanTag: 111 zSide: accessPoint: type: SP profile: - uuid: c2b7557e-95dc-412d-8dff-abbcb242ccc2 + uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 notifications: - type: ALL emails: @@ -26773,6 +28598,55 @@ components: createdDateTime: 2020-05-21T10:30:00Z project: projectId: 37c8212c-c393-465c-8267-09d28c49774c + COLO2AzureSP-Primary-Response: + value: + href: https://api.equinix.com/fabric/v4/connections/5901c429-cd23-4149-b1cc-5f1b10cc5041 + type: EVPL_VC + uuid: 5901c429-cd23-4149-b1cc-5f1b10cc5041 + name: port2azure-connection-1 + operation: + providerStatus: PROVISIONING + equinixStatus: PROVISIONING + order: + billingTier: Up to 200 MB + termLength: 1 + notifications: + - type: ALL + emails: + - fabric@equinix.com + changeLog: + createdBy: fabricuser + createdDateTime: 2026-03-10T02:26:31.546Z + updatedBy: fabricuser + updatedDateTime: 2026-03-10T02:26:31.546Z + bandwidth: 100 + redundancy: + group: ce76ec16-5857-4472-9067-2fa3d7a9f52q + priority: PRIMARY + aSide: + accessPoint: + location: + metroHref: https://api.equinix.com/fabric/v4/metros/DA + metroCode: DA + port: + href: https://api.equinix.com/fabric/v4/ports/d966b9ce-79ed-4ea6-8f8a-785fd69f3dcb + type: XF_PORT + uuid: d966b9ce-79ed-4ea6-8f8a-785fd69f3dcb + name: 1-DA1-CX-PRI-012345 + linkProtocol: + type: DOT1Q + vlanTag: 123 + zSide: + accessPoint: + location: + metroHref: https://api.equinix.com/fabric/v4/metros/DC + metroCode: DC + profile: + href: https://api.equinix.com/fabric/v4/serviceProfiles/a1390b22-bbe0-4e93-ad37-85beef9d254a + type: L2_PROFILE + name: Azure ExpressRoute + uuid: a1390b22-bbe0-4e93-ad37-85beef9d254a + authenticationKey: xxxx-xxx-xxxx COLO2GoogleSPwithDot1q-Response: value: type: EVPL_VC @@ -26791,12 +28665,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T14:25:30.509Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T14:25:30.509Z bandwidth: 50 redundancy: @@ -26830,7 +28700,7 @@ components: type: EVPL_VC href: https://api.equinix.com/fabric/v4/connections/2c7bb68e-f560-41ac-9950-e62c87be191e uuid: 2c7bb68e-f560-41ac-9950-e62c87be191e - name: vd2alibaba-connection-1 + name: port2alibaba-connection-1 operation: providerStatus: PROVISIONING equinixStatus: PROVISIONING @@ -26842,12 +28712,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-05-02T20:07:38.626Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-05-02T20:07:38.626Z bandwidth: 50 redundancy: @@ -26894,12 +28760,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-05-02T20:25:09.841Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-05-02T20:25:09.841Z bandwidth: 1000 redundancy: @@ -27234,8 +29096,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2Colo-ResponseExample: value: @@ -27274,8 +29134,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2IpWan-response: value: @@ -27318,8 +29176,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2Sp-marketplaceSubscription-Response: value: @@ -27359,8 +29215,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z AsideServiceToken2PortResponseWithDot1q: value: @@ -27500,6 +29354,9 @@ components: uuid: f37e40c5-2802-4df7-9732-839a8a5868ce name: My-Metal2Aws-Connection bandwidth: 1000 + redundancy: + group: 3cbd354d-d147-4552-bfd0-78c559b4cc91 + priority: PRIMARY aSide: accessPoint: type: METAL_NETWORK @@ -27533,8 +29390,6 @@ components: - fabric1@gmail.com changeLog: createdBy: fabric - createdByEmail: fabric@gmail.com - createdByFullName: fabric createdDateTime: 2020-05-21T10:30:00Z Metal2Sp-Azure-Response: value: @@ -27553,12 +29408,8 @@ components: - eqxfabricamcrh@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-21T20:14:04.072Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-21T20:14:04.072Z bandwidth: 50 redundancy: @@ -27598,12 +29449,8 @@ components: - fabric@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-21T20:14:04.072Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-21T20:14:04.072Z bandwidth: 50 redundancy: @@ -27643,12 +29490,8 @@ components: - test@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-19T23:09:15.547Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-19T23:09:15.547Z bandwidth: 50 redundancy: @@ -27689,12 +29532,8 @@ components: - dragons-qa3@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-06T17:20:41.574Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-06T17:20:41.574Z bandwidth: 50 redundancy: @@ -27735,12 +29574,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-20T00:39:07.648Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-20T00:39:07.648Z bandwidth: 50 redundancy: @@ -27782,12 +29617,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-21T23:44:22.347Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-21T23:44:22.347Z bandwidth: 50 redundancy: @@ -27830,12 +29661,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-20T20:12:08.595Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-20T20:12:08.595Z bandwidth: 50 redundancy: @@ -27882,12 +29709,8 @@ components: - test@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-22T00:42:35.386Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-22T00:42:35.386Z bandwidth: 1000 redundancy: @@ -27909,275 +29732,6 @@ components: type: L2_PROFILE name: Generic Service Profile uuid: f1a247aa-8f86-4a89-88c2-72497686cd0d - MCNS2Sp-Alibaba-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/974cb1c6-5090-4796-9d38-f5c14432d2c4 - type: EVPL_VC - uuid: 974cb1c6-5090-4796-9d38-f5c14432d2c4 - name: My-MCNS2Alibaba-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:35:23.750Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:35:23.750Z - bandwidth: 50 - redundancy: - group: 9d92f86f-2c2a-4b88-b9a1-a61ec83c28cf - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/4c4b8edf-873b-4c6c-805a-edb2c335bd6c - type: L2_PROFILE - name: Alibaba Cloud Express Connect - uuid: 4c4b8edf-873b-4c6c-805a-edb2c335bd6c - sellerRegion: us-east-1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-Aws-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/729a1248-afa5-4dee-a4e7-5f24cab53287 - type: EVPL_VC - uuid: 729a1248-afa5-4dee-a4e7-5f24cab53287 - name: My-MCNS2AWS-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-06T17:08:45.548Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-06T17:08:45.548Z - bandwidth: 50 - redundancy: - group: 75346f39-4193-466e-9a83-78c7e153f6e2 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/69ee618d-be52-468d-bc99-00566f2dd2b9 - type: L2_PROFILE - name: AWS Direct Connect - uuid: 69ee618d-be52-468d-bc99-00566f2dd2b9 - sellerRegion: us-east-1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-GCP-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/4c2c8739-f476-47ae-a0fa-f924e1081e62 - type: EVPL_VC - uuid: 4c2c8739-f476-47ae-a0fa-f924e1081e62 - name: My-MCNS2GCP-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-06T19:25:09.527Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-06T19:25:09.527Z - bandwidth: 50 - redundancy: - group: 33286a70-e0d5-466b-873e-f2c1836d1f0c - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/bd4570e2-d792-4a00-87f5-3bde040cdcd7 - type: L2_PROFILE - name: Google Cloud Partner Interconnect Zone 1 - uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 - sellerRegion: us-east1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-IBM2-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/d9e3f826-71e4-40a5-9e27-6030d1498e13 - type: EVPL_VC - uuid: d9e3f826-71e4-40a5-9e27-6030d1498e13 - name: MY-MCNS2IBM2-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:23:43.711Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:23:43.711Z - bandwidth: 50 - redundancy: - group: f65c252c-ea74-4a12-87aa-7bc0236cb24a - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - type: L2_PROFILE - name: IBM Cloud Direct Link 2 - uuid: e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - sellerRegion: Washington 2 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-Azure-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/43504d46-f5ce-4d47-99f6-d220df13f81d - type: EVPL_VC - uuid: 43504d46-f5ce-4d47-99f6-d220df13f81d - name: My-MCNS2Azure-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T04:41:43.111Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T04:41:43.111Z - bandwidth: 50 - redundancy: - group: d88b8fe3-23ac-42b6-8c28-33d33f0b9760 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/a1390b22-bbe0-4e93-ad37-85beef9d254d - type: L2_PROFILE - name: Azure ExpressRoute - uuid: a1390b22-bbe0-4e93-ad37-85beef9d254d - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-OCI-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/addae6f7-69c1-494e-905a-3d94b8cb8f1a - type: EVPL_VC - uuid: addae6f7-69c1-494e-905a-3d94b8cb8f1a - name: My-MCNS2OCI-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:09:26.587Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:09:26.587Z - bandwidth: 50 - redundancy: - group: 6620b2a3-d3d7-420b-a3a0-4b5ae8b0cd10 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/60ef0382-cdaa-44e7-bd36-b803731816b8 - type: L2_PROFILE - name: Oracle Cloud Infrastructure FastConnect - uuid: 60ef0382-cdaa-44e7-bd36-b803731816b8 - sellerRegion: us-ashburn-1 - authenticationKey: xxxx-xxx-xxxx COLO2NETWORKwithDot1q-Response: value: href: https://api.equinix.com/fabric/v4/connections/f3dd7395-7196-45f4-9b6f-54094aa75f53 @@ -28196,12 +29750,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28210,7 +29760,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28250,12 +29800,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28264,7 +29810,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28303,12 +29849,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28317,7 +29859,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28356,12 +29898,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28370,7 +29908,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28408,12 +29946,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28422,7 +29956,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28463,12 +29997,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28477,7 +30007,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28517,12 +30047,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28531,7 +30057,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28571,12 +30097,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28585,7 +30107,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28623,12 +30145,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-30T20:19:44.279Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-30T20:19:44.279Z bandwidth: 50 redundancy: @@ -28672,12 +30190,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:12:20.334Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:12:20.334Z bandwidth: 50 redundancy: @@ -28723,12 +30237,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-27T00:32:21.879Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-27T00:32:21.879Z bandwidth: 50 redundancy: @@ -28774,12 +30284,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:30:24.632Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:30:24.632Z bandwidth: 100 redundancy: @@ -28824,12 +30330,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:40:40.676Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:40:40.677Z bandwidth: 1000 redundancy: @@ -28874,12 +30376,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:43:43.199Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:43:43.199Z bandwidth: 50 redundancy: @@ -28925,12 +30423,8 @@ components: - fabric@equinx.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinx.com createdDateTime: 2024-04-25T14:06:48.933Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinx.com updatedDateTime: 2024-04-25T14:06:48.933Z bandwidth: 50 redundancy: @@ -28958,45 +30452,12 @@ components: uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 sellerRegion: us-west2 authenticationKey: xxxx-xxxx/us-west2/1 - IXPublicPeeringConnectionResponse: + IXDedicatedPublicPeeringConnectionResponse: value: href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: IX_PUBLIC_VC - name: Connection-1-Public-Connection - operation: - providerStatus: AVAILABLE - equinixStatus: PROVISIONED - bandwidth: 100000 - aSide: - accessPoint: - type: COLO - port: - href: https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166 - type: XF_PORT - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - linkProtocol: - type: UNTAGGED - zSide: - accessPoint: - type: SP - profile: - type: IX_PROFILE - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - name: IX Public Peering Profile - href: https://api.equinix.com/fabric/v4/serviceProfiles/0f6bdb36-e130-4924-b038-ee1785fad166 - notifications: - - type: ALL - emails: - - test@test.com - project: - projectId: 03ed2230-604a-494c-bca2-c042d38d80bc - IXPrivatePeeringConnectionResponse: - value: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: IX_PRIVATE_VC - name: Private-Connection-1 + type: IX_VC + name: Virtual-Connection-1 bandwidth: 100000 operation: providerStatus: NOT_AVAILABLE @@ -29006,20 +30467,20 @@ components: type: COLO port: href: https://api.equinix.com/fabric/v4/ports/99e83e59-fd26-4134-b1b3-4c5dea6924d6 - type: XF_PORT uuid: 99e83e59-fd26-4134-b1b3-4c5dea6924d6 + type: XF_PORT name: A-IX-Port linkProtocol: type: DOT1Q - vlanTag: 111 + vlanTag: 99 zSide: accessPoint: type: SP profile: - name: Private IX Profile + href: https://api.equinix.com/fabric/v4/serviceProfiles/0f6bdb36-e130-4924-b038-ee1785fad166 + uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 type: IX_PROFILE - href: https://api.equinix.com/fabric/v4/serviceProfiles/c2b7557e-95dc-412d-8dff-abbcb242ccc2 - uuid: c2b7557e-95dc-412d-8dff-abbcb242ccc2 + name: Equinix Internet Exchange Peering Profile project: projectId: 03ed2230-604a-494c-bca2-c042d38d80bc notifications: @@ -29894,12 +31355,8 @@ components: - test@equinix.com changeLog: createdBy: test - createdByFullName: test test - createdByEmail: test@equinix.com createdDateTime: 2023-03-01T22:57:15.874Z updatedBy: test - updatedByFullName: test test - updatedByEmail: test@equinix.com updatedDateTime: 2023-03-01T22:57:15.874Z - href: https://api.equinix.com/fabric/v4/connections/d27746b9-6c1e-95cb-b0ee-6c2fdb4990ba type: EVPL_VC @@ -29951,12 +31408,8 @@ components: - test@equinix.com changeLog: createdBy: test - createdByFullName: test test - createdByEmail: test@equinix.com createdDateTime: 2023-03-01T22:57:15.918Z updatedBy: test - updatedByFullName: test test - updatedByEmail: test@equinix.com updatedDateTime: 2023-03-01T22:57:15.918Z ConnectionBulkMigrationRequest: value: @@ -30013,12 +31466,8 @@ components: changeLog: createdBy: testBuyer createdDateTime: 2021-12-02 07:17:41.663 - createdByFullName: testBuyer testBuyer - createdByEmail: testBuyer@equinix.com updatedBy: testBuyer updatedDateTime: 2021-12-02 07:17:41.663 - updatedByFullName: testBuyer testBuyer - updatedByEmail: testBuyer@equinix.com change: uuid: 2f395804-c197-4796-b7b3-359d5fa5d853 type: CONNECTION_UPDATE @@ -30434,12 +31883,8 @@ components: - testuser@equinix.com changeLog: createdBy: testuser - createdByFullName: testuser testuser - createdByEmail: testuser@equinix.com createdDateTime: 2025-09-10T12:26:12.344Z updatedBy: testuser - updatedByFullName: testuser testuser - updatedByEmail: testuser@equinix.com updatedDateTime: 2025-09-10T12:33:42.996Z bandwidth: 200 redundancy: @@ -30705,13 +32150,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -30734,13 +32175,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -30802,13 +32239,9 @@ components: uuid: 3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -30833,13 +32266,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -30985,13 +32414,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31016,13 +32441,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -31037,17 +32458,11 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_DELETION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z - deletedBy: abc@xyz.com - deletedByFullName: abc - deletedByEmail: abc@xyz.com + deletedBy: fabric deletedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -31062,13 +32477,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_DELETION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31114,13 +32525,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31141,13 +32548,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31172,12 +32575,8 @@ components: state: SUCCEEDED 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:35:00Z - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/4d5ed98a-8dba-4651-a317-8ad0234dd157/actions/995ed98b-1db9-6653-c323-19d0234dd999 uuid: 995ed98b-1db9-6653-c323-19d0234dd999 @@ -31186,12 +32585,8 @@ components: state: FAILED changeLog: createdBy: testuser - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:20:00Z updatedBy: testuser - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser updatedDateTime: 2020-05-21T10:25:00Z BGPSoftClearInAndOutBoundIPv4: value: @@ -31220,8 +32615,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPHardResetIPv6Response: value: @@ -31232,8 +32625,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInAndOutBoundIPv4Response: value: @@ -31244,8 +32635,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInAndOutBoundIPv6Response: value: @@ -31256,8 +32645,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInBoundIPv4Response: value: @@ -31268,8 +32655,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInBoundIPv6Response: value: @@ -31280,8 +32665,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPActionDataResponseExample: value: @@ -31292,12 +32675,8 @@ components: state: SUCCEEDED changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z updatedBy: adminuser - updatedByEmail: adminuser@equinix.com - updatedByFullName: adminuser adminuser updatedDateTime: 2020-05-21T10:35:00Z RoutingProtocolGetChangeResponseExample: value: @@ -31416,238 +32795,363 @@ components: bfd: enabled: true interval: "100" - AllPeeringProtocolResponse: + ExchangeServiceCreateRequest: + value: + type: IX + name: ix_exchange_service + publicPeeringConnection: + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + description: ix_exchange_service + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + bgpIpv4: + domainName: gw01.sin.example.net + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5KEY12345 + prefixes: + - 203.0.113.0/24 + bgpIpv6: + domainName: gw01.sin.example.net + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5KEY123456 + prefixes: + - 2001:DB8:123::/48 + order: + purchaseOrderNumber: 1-3456576 + notifications: + - type: ALL + emails: + - test@test.com + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + ExchangeServiceResponse: value: - pagination: - offset: 0 - limit: 10 - total: 1 - data: - - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 - state: PROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 - changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - Peering_400: + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 + uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service + state: PROVISIONING + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334\ + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com + changelog: + createdBy: "12345" + createdDateTime: 2025-08-30T07:21:39Z + ExchangeService_400: value: - errorCode: EQ-3067103 - errorMessage: Peering Protocol does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId + errorMessage: Invalid request. Please verify the request payload. correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec - details: Peering Protocol Service does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId - Peering_401: + details: Invalid request. Please verify the request payload. + ExchangeService_401: value: - errorCode: EQ-3067106 errorMessage: User not found in request or invalid. correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - Peering_403: + ExchangeService_403: value: - errorCode: EQ-3067102 errorMessage: Operation not allowed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Operation not allowed for current user - Peering_404: + ExchangeService_404: value: - errorCode: EQ-3067101 - errorMessage: Peering Protocol not found; it may not exist or could have already been deleted. + errorMessage: Exchange Service not found. correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - details: Peering Protocol Service not found or already deleted - Peering_500: + details: Exchange Service not found. + ExchangeService_500: value: - errorCode: EQ-3067104 errorMessage: Internal Server Error correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Internal Server Error - PeeringProtocolCreateRequest: - value: - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - macAddress: 00:11:22:33:44:55 - bgpIpv4: - domainName: gw01.sin.example.net - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY12345 - prefixes: - - 203.0.113.0/24 - bgpIpv6: - domainName: gw01.sin.example.net - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY123456 - prefixes: - - 2001:DB8:123::/48 - PeeringProtocolResponse: - value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 - state: PROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 - changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - PeeringProtocolDeleteResponse: + ExchangeServiceDeleteResponse: value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service state: DEPROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - rcMd5AuthKey: TESTMD5KEY123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - PeeringProtocolPatchRequest: + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ExchangeServicePatchRequest: value: - op: replace path: /macAddress value: 00:1A:2B:3C:4D:5E - PeeringProtocolPatchResponse: + ExchangeServicePatchResponse: value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service state: REPROVISIONING - macAddress: 00:1A:2B:3C:4D:5E - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ExchangeServiceSearchProjectId: + value: + filter: + and: + - property: /project/projectId + operator: = + values: + - 30ad25e2-53dc-11ed-bdc3-0242ac120002 + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + ExchangeServiceSearchResponse: + value: + pagination: + offset: 0 + limit: 10 + total: 1 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + data: + - href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 + uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service + state: PROVISIONING + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com + changelog: + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ACTIVATE: + value: + type: ACTIVATE + VALIDATE: + value: + type: VALIDATE + ExchangeServiceActionResponse: + value: + href: https://api.equinix.com/fabric/v4/exchangeService/a8ba52de-faae-43b5-b0b1-6904d37ee011/actions/3a58dd05-f46d-4b1d-a154-2e85c396ea62 + type: ACTIVATE + uuid: 3a58dd05-f46d-4b1d-a154-2e85c396ea62 + state: SUCCEEDED + changeLog: + createdDateTime: 2026-02-10T11:30:00Z + createdBy: Alice ConnectionSearchDirection: value: filter: @@ -32935,6 +34439,42 @@ components: operator: = values: - CH3 + MetroConnectProduct: + value: + filter: + and: + - property: /type + operator: = + values: + - METRO_CONNECT_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "200551" + - property: /metroConnect/type + operator: = + values: + - OPTICAL_MC + - property: /metroConnect/bandwidth + operator: = + values: + - "1000" + - property: /metroConnect/pathType + operator: = + values: + - PROTECTED + - property: /metroConnect/connectionDestinationType + operator: = + values: + - COLO + - property: /metroConnect/aSide/location/ibxCode + operator: = + values: + - CH1 + - property: /metroConnect/zSide/location/ibxCode + operator: = + values: + - CH3 VirtualConnection: value: pagination: @@ -33133,6 +34673,36 @@ components: location: metroCode: CH ibx: CH3 + MetroConnect: + value: + pagination: + offset: 0 + limit: 1 + total: 1 + data: + - type: METRO_CONNECT_PRODUCT + code: MC00007.PROD + name: Metro Connect Port Product + description: Metro Connect Port + account: + accountNumber: 200551 + charges: + - type: MONTHLY_RECURRING + price: 500 + - type: NON_RECURRING + price: 0 + currency: USD + metroConnect: + type: OPTICAL_MC + bandwidth: 1000 + pathType: PROTECTED + connectionDestinationType: COLO + aSide: + location: + ibxCode: CH1 + zSide: + location: + ibxCode: CH3 400_prices: value: - errorCode: EQ-3038010 @@ -34068,6 +35638,11 @@ components: path: /tags value: - sample_tag + ServiceProfilePatchRequestForVisibility: + value: + - op: replace + path: /visibility + value: PUBLIC ServiceProfilePatchResponse: value: state: ACTIVE @@ -34143,10 +35718,110 @@ components: ibxs: - SY4 displayName: Sydney - sp-412: + ServiceProfilePatchResponseForVisibility: + value: + state: ACTIVE + account: + orgId: 91785 + organizationName: testSeller-270010 + globalOrgId: 0016u000003JZ4tAAG + change: + href: fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f/actions/9b9f8a9b-4583-4649-9d91-a48494f822a7 + type: PROFILE_UPDATE_ACCEPTANCE + uuid: 9b9f8a9b-4583-4649-9d91-a48494f822a7 + comments: Approved to migrate to public + createdDateTime: 2026-02-17T17:23:35.543Z + data: + - op: replace + path: /visibility + value: PUBLIC + changeLog: + createdBy: fusiontestseller + createdByFullName: fusiontestSeller fusiontestSeller + createdByEmail: fusiontestSeller@equinix.com + createdDateTime: 2022-04-12T19:06:57.940Z + updatedDateTime: 2022-04-12T19:11:04.017Z + href: https://api.equinix.com/fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f + type: L2_PROFILE + name: Service Profile 2 + uuid: ea4b5141-e4d2-49f1-9768-4ea6e215b37f + description: Sample_description + notifications: + - type: BANDWIDTH_ALERT + emails: + - someone@sample.com + - type: CONNECTION_APPROVAL + emails: + - someone@sample.com + - type: PROFILE_LIFECYCLE + emails: + - someone@sample.com + visibility: PRIVATE + tags: + - sample_tag + allowedEmails: + - test@equinix.com + - testagain@equinix.com + accessPointTypeConfigs: + - type: COLO + uuid: f20c49cd-b022-4aeb-b3e4-49db4389aff3 + supportedBandwidths: + - 100 + - 500 + allowRemoteConnections: false + allowCustomBandwidth: true + bandwidthAlertThreshold: 10 + allowBandwidthAutoApproval: false + linkProtocolConfig: + encapsulationStrategy: CTAGED + reuseVlanSTag: false + encapsulation: DOT1Q + enableAutoGenerateServiceKey: false + connectionRedundancyRequired: false + selectiveRedundancy: false + apiConfig: + apiAvailable: false + equinixManagedPort: true + equinixManagedVlan: true + allowOverSubscription: false + overSubscriptionLimit: 1 + bandwidthFromApi: false + connectionLabel: true1 + authenticationKey: + required: false + label: Service Key + marketingInfo: + promotion: true + ports: + - type: XF_PORT + uuid: c791f8cb-5cc9-cc90-8ce0-306a5c00a4ee + location: + metroCode: SY + metros: + - code: SY + name: Sydney + ibxs: + - SY4 + displayName: Sydney + ServiceProfileActionRequest: + value: + type: PROFILE_UPDATE_ACCEPTANCE + description: Approved to migrate to public + ServiceProfileActionRejectionRequest: value: - - errorCode: EQ-3001205 - errorMessage: "If-Match : invalid Etag version" + type: PROFILE_UPDATE_REJECTION + description: Rejected the migration to public + ServiceProfileActionResponse: + value: + href: https://api.equinix.com/fabric/v4/serviceProfiles/f30a9de3-c79e-443e-b65d-0a0692c6f3e0/actions/ac2a3233-23d9-423c-b375-0e78717bd348 + type: PROFILE_UPDATE_ACCEPTANCE + uuid: ac2a3233-23d9-423c-b375-0e78717bd348 + comments: Approved to migrate to public + changeLog: + createdBy: adminuser + createdDateTime: 2026-03-04T10:30:00Z + updatedBy: adminuser + updatedDateTime: 2026-03-04T10:35:00Z getServiceToken: value: href: http://api.equinix.com/fabric/v4/serviceTokens/13ab7dc7-c18e-4f73-aa35-fc3a83966e79 @@ -34952,35 +36627,22 @@ components: - 407f8239-254c-4fe2-a378-458f197e17c4 ColoMetroConnectCreate: value: - type: FABRIC_MC - bandwidth: 10000 + type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: null + patchPanelPortB: null + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -34989,29 +36651,55 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com RemoteMetroConnectCreate: value: - type: FABRIC_MC - bandwidth: 10000 + type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + BMMRMetroConnectCreate: + value: + type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + aSide: + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + bmmrType: EQUINIX order: purchaseOrderNumber: 156576 - signature: - signatory: SELF project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35020,60 +36708,39 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com ColoMetroConnectResponseExample: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV2:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35082,6 +36749,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35091,49 +36760,29 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: SELF project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35142,6 +36791,51 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com + changeLog: + createdByEmail: abc@xyz.com + createdDateTime: 2025-07-24T06:50:46Z + updatedByEmail: abc@xyz.com + updatedDateTime: 2025-07-24T06:51:46Z + BMMRMetroConnectResponseExample: + value: + href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-01 + state: PROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + bmmrType: EQUINIX + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35150,231 +36844,245 @@ components: ColoMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com RemoteMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - ColoMetroConnectBulkCreateWithOrder: + notifications: + - type: ALL + emails: + - test@test.com + BMMRMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: PRIMARY + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: SECONDARY + aSide: + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + ColoMetroConnectBulkCreateWithPurchaseOrder: + value: + data: + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com ColoMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - type: XF_PORT - uuid: b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: orderNumber: 1-129105284100 project: @@ -35385,57 +37093,37 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/a6f77b33-96c6-4eeb-8d79-76374d950603 uuid: a6f77b33-96c6-4eeb-8d79-76374d950603 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 - type: MC_VC - uuid: f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - type: XF_PORT - uuid: e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - type: XF_PORT - uuid: a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: orderNumber: 1-129105284100 project: @@ -35446,57 +37134,36 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com RemoteMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e2a4c1b7-8d5f-4e2a-9c1a-7f6b2e8d9a12 - type: XF_PORT - uuid: e2a4c1b7-8d5f-4e2a-9c1a-7f6b2e8d9a12 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: orderNumber: 1-129105284100 project: @@ -35507,54 +37174,33 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 uuid: c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f3a6b2d8-1e4c-4b7a-9c2e-8d5f6a1b3e79 - type: MC_VC - uuid: f3a6b2d8-1e4c-4b7a-9c2e-8d5f6a1b3e79 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/a3a6b2d8-2e4c-4b7a-9c2e-8d5f6a1b3e80 - type: XF_PORT - uuid: a3a6b2d8-2e4c-4b7a-9c2e-8d5f6a1b3e80 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: c8f1a2b3-4d5e-6f70-8a91-2b3c4d5e6f70 - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/c1e7b2a4-5d8f-4e2a-9c1a-7f6b2e8d9a11 - type: XF_PORT - uuid: c1e7b2a4-5d8f-4e2a-9c1a-7f6b2e8d9a11 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 order: orderNumber: 1-129105284100 project: @@ -35565,69 +37211,122 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z - ColoMetroConnectBulkResponseWithOrderExample: + registeredUsers: + - test@test.com + BMMRMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: PRIMARY + group: 22f8e668-4754-4564-825d-d1c7889c885a + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + - href: https://api.equinix.com/fabric/v4/metroConnects/c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 + uuid: c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 + state: PROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: SECONDARY + group: 22f8e668-4754-4564-825d-d1c7889c885a + aSide: + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + order: + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + ColoMetroConnectBulkResponseWithPurchaseOrderExample: + value: + data: + - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 + state: PROVISIONING + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - type: XF_PORT - uuid: b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35636,66 +37335,40 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/a6f77b33-96c6-4eeb-8d79-76374d950603 uuid: a6f77b33-96c6-4eeb-8d79-76374d950603 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 - type: MC_VC - uuid: f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - type: XF_PORT - uuid: e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - type: XF_PORT - uuid: a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35704,11 +37377,8 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com MetroConnect_400: value: - errorCode: EQ-3057103 @@ -35737,56 +37407,33 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC + type: OPTICAL_MC name: 270848-SV1-SV2-01 state: DEPROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35795,6 +37442,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35804,53 +37453,67 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC + type: OPTICAL_MC name: 270848-SV1-SV2-01 state: DEPROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + BMMRMetroConnectResponseDeprovisioningExample: + value: + href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-01 + state: DEPROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + bmmrType: EQUINIX + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35859,6 +37522,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35889,11 +37554,11 @@ components: - property: /name operator: = values: - - my-fmc-service + - 270848-SV1-SV2-01 - property: /type operator: = values: - - FABRIC_MC + - OPTICAL_MC - property: /project/projectId operator: = values: @@ -35932,56 +37597,32 @@ components: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service-1 + type: OPTICAL_MC + name: 270848-SV1-SV2-01-1 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + connectorType: SC + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35990,6 +37631,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35997,56 +37640,32 @@ components: updatedDateTime: 2025-07-24T06:51:46Z - href: https://api.equinix.com/fabric/v4/metroConnects/07abb0e3-e67d-5090-9aff-fc5654abaae0 uuid: 07abb0e3-e67d-5090-9aff-fc5654abaae0 - type: FABRIC_MC - name: My-FMC-Service-2 + type: OPTICAL_MC + name: 270848-SV1-SV2-01-2 state: PROVISIONED - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/c4d93b39-02db-2dbc-ace0-30fa5c00ad04 - type: MC_VC - uuid: c4d93b39-02db-2dbc-ace0-30fa5c00ad04 aSide: - patchPanel: - id: CP:Demarc:1234685 - portA: "11" - portB: "12" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/6f0f3015-2d51-4b6e-a98c-1defb4fe88f1 - type: XF_PORT - uuid: 6f0f3015-2d51-4b6e-a98c-1defb4fe88f1 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1234685 + patchPanelPortA: "11" + patchPanelPortB: "12" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1359684 - portA: "11" - portB: "12" - connectorType: SC - cageUniqueSpaceId: SV2:01:001285 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/116d431c-5cac-4171-b41b-ea9d801672bf - type: XF_PORT - uuid: 116d431c-5cac-4171-b41b-ea9d801672bf - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 126758 orderNumber: 1-139105284200 - signature: - signatory: DELEGATE - delegate: - firstName: Tom - lastName: Lim - email: tom.lim@company.com project: projectId: 66a2d2f7-b79b-49bc-8642-d2b3c1c138b4 account: @@ -36055,6 +37674,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2024-07-24T06:50:46Z @@ -37048,6 +38669,92 @@ components: - type: ESCALATION registeredUsers: - jaguarsuser-port-order + bmmrSinglePortCreateDryRunResponse: + value: + type: XF_PORT + connectivitySourceType: BMMR + physicalPortsSpeed: 1000 + physicalPortsType: 1000BASE_LX + physicalPortsCount: 1 + location: + metroCode: AT + demarcationPointIbx: AT1 + redundancy: + priority: PRIMARY + lagEnabled: false + encapsulation: + type: DOT1Q + tagProtocolId: 33024 + package: + code: STANDARD + project: + projectId: b7c8d9e0-f1a2-4b3c-9d4e-5f6a7b8c9d0e + account: + accountNumber: 100001 + accountName: Test-Account + order: + purchaseOrder: + number: Fabric-PO-TEST-001 + amount: "1000" + startDate: 2025-01-01 + endDate: 2030-01-01 + type: EXISTING + signature: + signatory: SELF + delegate: + email: test-user@example.com + notifications: + - type: TECHNICAL + registeredUsers: + - test-technical-user + - type: NOTIFICATION + registeredUsers: + - test-notification-user + loas: + - uuid: a0b1c2d3-e4f5-4678-a6b7-c8d9e0f1a2b3 + remoteSinglePortCreateDryRunResponse: + value: + type: XF_PORT + connectivitySourceType: REMOTE + physicalPortsSpeed: 1000 + physicalPortsType: 1000BASE_LX + physicalPortsCount: 1 + location: + metroCode: AT + demarcationPointIbx: AT1 + redundancy: + priority: PRIMARY + lagEnabled: false + encapsulation: + type: DOT1Q + tagProtocolId: 33024 + package: + code: STANDARD + project: + projectId: e3d4f5a6-7b8c-4d9e-a0b1-c2d3e4f56789 + account: + accountNumber: 100002 + accountName: Test-Account + order: + purchaseOrder: + number: Fabric-PO-TEST-002 + amount: "1000" + startDate: 2025-01-01 + endDate: 2030-01-01 + type: EXISTING + signature: + signatory: SELF + delegate: + email: test-user@example.com + notifications: + - type: TECHNICAL + registeredUsers: + - test-technical-user + - type: NOTIFICATION + registeredUsers: + - test-notification-user + loas: + - uuid: f1e2d3c4-b5a6-4978-8e0f-1a2b3c4d5e6f coloSinglePortNonLagResponse: value: href: https://api.equinix.com/fabric/v4/ports/11abfba0-907f-460b-95ff-5a7bda4471ed @@ -37102,9 +38809,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37157,8 +38861,6 @@ components: additionalInfo: - key: lagType value: New - - key: quoteReferenceId - value: ee38d4b9-8264-4824-b829-659b72d50b4f remoteSinglePortLagResponse: value: href: https://api.equinix.com/fabric/v4/ports/68adcd26-d66c-489d-9c72-8990b92a288e @@ -37207,8 +38909,6 @@ components: additionalInfo: - key: lagType value: New - - key: quoteReferenceId - value: ee38d4b9-8264-4824-b829-659b72d50b4f remoteSinglePortLagWithPurchaseOrderExemption: value: type: XF_PORT @@ -37289,9 +38989,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37339,9 +39036,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37399,15 +39093,6 @@ components: - 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 @@ -37607,8 +39292,6 @@ components: loas: - uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98 additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" bmmrType: EQUINIX @@ -37645,8 +39328,6 @@ components: loas: - uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98 additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" bmmrType: EQUINIX @@ -37694,8 +39375,6 @@ components: project: projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1 additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" order: @@ -37740,8 +39419,6 @@ components: project: projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1 additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" order: @@ -37862,8 +39539,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" - href: https://api.equinix.com/fabric/v4/ports/57eb2e60-d16a-40ad-8395-6e083ce0d631 @@ -37908,8 +39583,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" remoteBulkPortResponse: @@ -37958,8 +39631,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" - href: https://api.equinix.com/fabric/v4/ports/44cea0ee-1a05-4347-a39b-c11dfde4b591 @@ -38005,8 +39676,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" coloAddToLag: @@ -38941,8 +40610,6 @@ components: 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 @@ -38991,8 +40658,6 @@ components: 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 @@ -39263,8 +40928,8 @@ components: offset: 1 limit: 2 total: 10 - next: /routeFilters?offset=3&limit=2 - previous: /routeFilters?offset=0&limit=2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 data: - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d type: BGP_IPv4_PREFIX_FILTER @@ -39674,6 +41339,102 @@ components: createdByEmail: testuser@equinix.com createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:30:00Z + SearchRouteFilterRulesAndRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER_RULE + - property: /state + operator: = + values: + - PROVISIONED + - or: + - property: /name + operator: LIKE + values: + - "%Demo%" + - property: /name + operator: LIKE + values: + - "%Production%" + - or: + - property: /state + operator: = + values: + - PROVISIONED + - and: + - property: /prefix + operator: = + values: + - 192.168.2.0/24 + - property: /prefixMatch + operator: = + values: + - exact + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteFilterRulesOrRequest: + value: + filter: + or: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER_RULE + - property: /state + operator: = + values: + - PROVISIONED + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteFilterRulesResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/search?offset=3&limit=2 + previous: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/search?offset=0&limit=2 + 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: Route_Filter_Rule_Demo1 + description: Test rule1 + prefixMatch: exact + action: PERMIT + prefix: 192.168.10.0/24 + state: PROVISIONED + 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: Route_Filter_Rule_Demo2 + description: Test rule2 + prefixMatch: orlonger + action: PERMIT + prefix: 192.168.20.0/24 + state: PROVISIONED + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z RouteAggregationCreateBgpIpv4Prefix: value: type: BGP_IPv4_PREFIX_AGGREGATION @@ -39863,8 +41624,8 @@ components: offset: 1 limit: 2 total: 10 - next: /routeAggregations?offset=3&limit=2 - previous: /routeAggregations?offset=0&limit=2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 data: - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d type: BGP_IPv4_PREFIX_AGGREGATION @@ -40119,6 +41880,89 @@ components: createdByEmail: testuser@equinix.com createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:30:00Z + SearchRouteAggregationRulesAndRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION_RULE + - property: /state + operator: = + values: + - PROVISIONED + - or: + - property: /name + operator: LIKE + values: + - "%Demo%" + - property: /name + operator: LIKE + values: + - "%Production%" + - or: + - property: /prefix + operator: = + values: + - 192.168.2.0/24 + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteAggregationRulesOrRequest: + value: + filter: + or: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION_RULE + - property: /state + operator: = + values: + - PROVISIONED + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteAggregationRulesResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/search?offset=3&limit=2 + previous: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/search?offset=0&limit=2 + 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: Route_Aggregation_Rule_Demo1 + description: Test rule1 + prefix: 192.168.10.0/24 + state: PROVISIONED + 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: Route_Aggregation_Rule_Demo2 + description: Test rule2 + prefix: 192.168.20.0/24 + state: PROVISIONED + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z CreateLabPackage: value: type: XF_ROUTER @@ -40442,13 +42286,47 @@ components: deletedByFullName: abc deletedByEmail: abc@xyz.com deletedDateTime: 2021-09-24T06:59:46Z - CloudRouterActionResponse: + CloudRouterActionSearchResponse: value: - type: ROUTE_TABLE_ENTRY_UPDATE - uuid: 37c10edc-ba2e-4240-a850-8a48f9c47d00 - state: PENDING - changeLog: - createdDateTime: 2020-05-21T10:30:00Z + pagination: + offset: 0 + limit: 1 + total: 2 + prev: null + next: null + data: + - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 + uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 + type: RECEIVED_ROUTE_ENTRY_UPDATE + state: SUCCEEDED + connection: + href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 + uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 + type: IP_VC + operation: + bgpIpv4RoutesCount: 6 + bgpIpv6RoutesCount: 6 + distinctIpv4PrefixesCount: 4 + distinctIpv6PrefixesCount: 4 + changeLog: + createdDateTime: 2024-01-01T01:00:00Z + updatedDateTime: 2024-01-01T01:01:00Z + - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 + uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 + type: ROUTE_TABLE_ENTRY_UPDATE + state: SUCCEEDED + router: + href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 + uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 + type: XF_ROUTER + operation: + bgpIpv4RoutesCount: 6 + bgpIpv6RoutesCount: 6 + distinctIpv4PrefixesCount: 4 + distinctIpv6PrefixesCount: 4 + changeLog: + createdDateTime: 2024-01-01T01:00:00Z + updatedDateTime: 2024-01-01T01:01:00Z RouteEntriesStatusUpdate: value: type: ROUTE_TABLE_ENTRY_UPDATE @@ -40462,6 +42340,13 @@ components: type: ADVERTISED_ROUTE_ENTRY_UPDATE connection: uuid: 557400f8-d360-11e9-bb65-2a2ae2dbcce4 + CloudRouterActionResponse: + value: + type: ROUTE_TABLE_ENTRY_UPDATE + uuid: 37c10edc-ba2e-4240-a850-8a48f9c47d00 + state: PENDING + changeLog: + createdDateTime: 2020-05-21T10:30:00Z CloudRouterReceivedRoutesActionResponse: value: type: RECEIVED_ROUTE_ENTRY_UPDATE @@ -40494,47 +42379,6 @@ components: sort: - direction: DESC property: /changeLog/createdDateTime - CloudRouterActionSearchResponse: - value: - pagination: - offset: 0 - limit: 1 - total: 2 - prev: null - next: null - data: - - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 - uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 - type: RECEIVED_ROUTE_ENTRY_UPDATE - state: SUCCEEDED - connection: - href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 - uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 - type: IP_VC - operation: - bgpIpv4RoutesCount: 6 - bgpIpv6RoutesCount: 6 - distinctIpv4PrefixesCount: 4 - distinctIpv6PrefixesCount: 4 - changeLog: - createdDateTime: 2024-01-01T01:00:00Z - updatedDateTime: 2024-01-01T01:01:00Z - - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 - uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 - type: ROUTE_TABLE_ENTRY_UPDATE - state: SUCCEEDED - router: - href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 - uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 - type: XF_ROUTER - operation: - bgpIpv4RoutesCount: 6 - bgpIpv6RoutesCount: 6 - distinctIpv4PrefixesCount: 4 - distinctIpv6PrefixesCount: 4 - changeLog: - createdDateTime: 2024-01-01T01:00:00Z - updatedDateTime: 2024-01-01T01:01:00Z 400_invalid_sorting: value: - errorCode: EQ-3043015 @@ -41101,6 +42945,94 @@ components: deletedByEmail: testuser@equinix.com deletedByFullName: testuser testuser deletedDateTime: 2020-05-21T10:30:00Z + CloudRouterSearchRouteFiltersRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER + - property: /direction + operator: = + values: + - INBOUND + - property: /attachmentStatus + operator: = + values: + - ATTACHED + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + CloudRouterSearchRouteFiltersResponse: + value: + pagination: + offset: 0 + limit: 20 + total: 2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 + data: + - href: https://api.equinix.com/fabric/v4/connections/57f82f8c-d899-4a21-93ae-5cfe33c50556/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + direction: INBOUND + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/connections/500589e0-4196-4839-8d43-a0c073b4d747/routeFilters/4ed45b37-2b26-49de-ab35-4ad039586c7a + type: BGP_IPv4_PREFIX_FILTER + uuid: 4ed45b37-2b26-49de-ab35-4ad039586c7a + direction: INBOUND + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + CloudRouterSearchRouteAggregationsRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION + - property: /attachmentStatus + operator: = + values: + - ATTACHED + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + CloudRouterSearchRouteAggregationsResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 + data: + - href: https://api.equinix.com/fabric/v4/connections/57f82f8c-d899-4a21-93ae-5cfe33c50556/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/connections/500589e0-4196-4839-8d43-a0c073b4d747/routeAggregations/4ed45b37-2b26-49de-ab35-4ad039586c7a + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 4ed45b37-2b26-49de-ab35-4ad039586c7a + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z SearchFilterByNameAndMetroName: value: filter: @@ -41982,8 +43914,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:37:29.326Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0633e83f-116f-481d-b86f-c472271d1a8c/connections @@ -42020,8 +43950,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:21:43.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/884254b7-237d-44f7-af0f-84ba324350ef/connections @@ -42056,8 +43984,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:43:20.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/726af704-0b1b-46dc-9efc-00fc938084b3/connections @@ -42092,8 +44018,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T20:52:23.469Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0d51722e-b080-4943-92ab-9720eaab2cfa/connections @@ -42130,8 +44054,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:21:43.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/884254b7-237d-44f7-af0f-84ba324350ef/connections @@ -42166,8 +44088,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T20:55:57.858Z links: href: http://api.corp.equinix.com/fabric/v4/networks/82402fc0-cb55-4a21-b0b3-1af89f63742b/connections @@ -42202,8 +44122,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.comm createdDateTime: 2025-03-05T21:17:46.656Z links: href: http://api.corp.equinix.com/fabric/v4/networks/07659346-9489-42cf-891a-683624e801d5/connections @@ -42240,8 +44158,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T20:57:07.206Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0ec08139-bae5-44c4-bea2-970b14d7c7c0/connections @@ -42276,8 +44192,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T21:22:30.984Z links: href: http://api.corp.equinix.com/fabric/v4/networks/4622cce8-114b-4432-94f4-060fda044ae3/connections @@ -42312,8 +44226,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T21:37:08.370Z links: href: http://api.corp.equinix.com/fabric/v4/networks/16ee541c-9e93-428b-9557-3f99907aa21c/connections @@ -42350,8 +44262,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-06T00:23:29.030Z links: href: http://api.corp.equinix.com/fabric/v4/networks/291fc758-91d3-482b-a9b3-3430685c390e/connections @@ -42386,8 +44296,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-06T00:30:42.972Z links: href: http://api.corp.equinix.com/fabric/v4/networks/c929924e-5d87-46b2-a82f-91a145c1803d/connections @@ -42427,12 +44335,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser NetworkGetResponseExample: value: href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -42455,12 +44359,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid @@ -42492,16 +44392,10 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser1 updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser deletedBy: testuser1 deletedDateTime: 2020-05-21T10:30:00Z - deletedByEmail: testuser@equinix.com - deletedByFullName: testuser testuser UpdateNetworkName: value: - op: replace @@ -42542,12 +44436,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid @@ -42582,12 +44472,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser1 updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid diff --git a/spec/services/fabricv4/oas3.patched/openapi.yaml b/spec/services/fabricv4/oas3.patched/openapi.yaml index a7104f03..bdbc32bd 100644 --- a/spec/services/fabricv4/oas3.patched/openapi.yaml +++ b/spec/services/fabricv4/oas3.patched/openapi.yaml @@ -9,7 +9,7 @@ info: license: name: Equinix Inc url: https://developer.equinix.com/agreement - version: "4.27" + version: "4.28" externalDocs: description: Find more information on Equinix Docs Portal url: https://docs.equinix.com/fabric/ @@ -62,6 +62,573 @@ tags: - name: Streams description: Streams paths: + /fabric/v4/agentTemplates: + get: + tags: + - Agent Templates + summary: Get Agent Templates + description: This API provides capability to retrieve agent templates + operationId: getAgentTemplates + 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/AgentTemplateGetAllResponse" + examples: + Example: + $ref: "#/components/examples/AgentTemplatesGetAllResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_500" + "/fabric/v4/agentTemplates/{agentTemplateId}": + get: + tags: + - Agent Templates + summary: Get Agent Template by UUID + description: This API provides capability to retrieve an agent template by uuid + operationId: getAgentTemplateByUuid + parameters: + - name: agentTemplateId + in: path + description: Agent Template UUID + required: true + schema: + $ref: "#/components/schemas/AgentTemplateId" + - 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: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/AgentTemplates" + examples: + AgentByUuidResponse: + $ref: "#/components/examples/AgentTemplatesResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/AgentTemplate_500" + /fabric/v4/agents: + get: + tags: + - Agents + summary: Get Agents + description: This API provides capability to retrieve agents + operationId: getAgents + 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/AgentGetAllResponse" + examples: + Example: + $ref: "#/components/examples/AgentGetAllResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + post: + tags: + - Agents + summary: Create Agent + description: This API provides capability to create user's agent + operationId: createAgent + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentPostRequest" + examples: + CreateAgent: + $ref: "#/components/examples/AgentPostRequestExample" + required: true + responses: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentPostResponse: + $ref: "#/components/examples/AgentPostResponseExample" + "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/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + "/fabric/v4/agents/{agentId}": + get: + tags: + - Agents + summary: Get Agent by UUID + description: This API provides capability to retrieve an agent by uuid + operationId: getAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentByUuidResponse: + $ref: "#/components/examples/AgentResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + delete: + tags: + - Agents + summary: Delete Agent by UUID + description: This API provides capability to delete an agent by uuid + operationId: deleteAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentDeleteResponse: + $ref: "#/components/examples/AgentDeleteResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + patch: + tags: + - Agents + summary: Update Agent by UUID + description: This API provides capability to update an agent by uuid + operationId: patchAgentByUuid + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/AgentPatchRequest" + examples: + PatchAgent: + $ref: "#/components/examples/AgentPatchRequestExample" + required: true + responses: + "202": + description: Agent object + content: + application/json: + schema: + $ref: "#/components/schemas/Agents" + examples: + AgentPostResponse: + $ref: "#/components/examples/AgentPatchResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" + "/fabric/v4/agents/{agentId}/activities": + get: + tags: + - Agents + summary: Get Agent Activities + description: This API provides capability to retrieve an agent activities + operationId: getAgentActivities + parameters: + - name: agentId + in: path + description: Agent UUID + required: true + schema: + $ref: "#/components/schemas/AgentId" + - 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/AgentGetActivities" + examples: + Example: + $ref: "#/components/examples/AgentActivitiesResponseExample" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_403" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_404" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/Agent_500" "/fabric/v4/{asset}/{assetId}/cloudevents": get: tags: @@ -599,10 +1166,8 @@ paths: $ref: "#/components/examples/COLO2AlibabaSPwithDot1q" Colo2Sp-Aws-Primary: $ref: "#/components/examples/COLO2AWSSPwithDot1q-Primary" - Colo2Sp-AzureDot1Q: - $ref: "#/components/examples/COLO2AzureSPwithDot1q-Primary" - Colo2Sp-AzureQinq: - $ref: "#/components/examples/COLO2AzureSPwithQinq-Secondary" + Colo2Sp-Azure-Primary: + $ref: "#/components/examples/COLO2AzureSP-Primary" Colo2Sp-Google: $ref: "#/components/examples/COLO2GoogleSPwithDot1q" Colo2Sp-Ibm_1.0: @@ -719,28 +1284,14 @@ paths: $ref: "#/components/examples/Metal2ServiceToken" Metal2Sp-Generic: $ref: "#/components/examples/Metal2Sp-Generic" - MultiCloudNetwork2Sp-Alibaba: - $ref: "#/components/examples/MCNS2Sp-Alibaba" - MultiCloudNetwork2Sp-Aws: - $ref: "#/components/examples/MCNS2Sp-Aws" - MultiCloudNetwork2Sp-GCP: - $ref: "#/components/examples/MCNS2Sp-GCP" - MultiCloudNetwork2Sp-IBM2: - $ref: "#/components/examples/MCNS2Sp-IBM2" - MultiCloudNetwork2Sp-Azure: - $ref: "#/components/examples/MCNS2Sp-Azure" - MultiCloudNetwork2Sp-OCI: - $ref: "#/components/examples/MCNS2Sp-OCI" Vd2IASp: $ref: "#/components/examples/Vd2IAProfile-Request" Fcr2Metal-Network: $ref: "#/components/examples/Fcr2Metal-Network" Connection-Colo2Sp-GenericDryRunCreate: $ref: "#/components/examples/CreateConnectionDryRunRequest" - IXPublic-Peering-Connection: - $ref: "#/components/examples/IXPublicPeeringConnection" - IXPrivate-Peering-Connection: - $ref: "#/components/examples/IXPrivatePeeringConnection" + IX2Sp-PublicPeering_VC: + $ref: "#/components/examples/IXDedicatedPublicPeeringConnection" required: true responses: "200": @@ -783,6 +1334,8 @@ paths: $ref: "#/components/examples/ConnectionCreateResponse" Colo2Colo-MetroConnect: $ref: "#/components/examples/COLO2COLO-MetroConnect-Response" + Colo2Sp-Azure-Primary: + $ref: "#/components/examples/COLO2AzureSP-Primary-Response" Colo2Sp-Google: $ref: "#/components/examples/COLO2GoogleSPwithDot1q-Response" Colo2Sp-Alibaba: @@ -833,18 +1386,6 @@ paths: $ref: "#/components/examples/Metal2ServiceToken-Response" Metal2Sp-Generic: $ref: "#/components/examples/Metal2Sp-Generic-Response" - MultiCloudNetwork2Sp-Alibaba: - $ref: "#/components/examples/MCNS2Sp-Alibaba-Response" - MultiCloudNetwork2Sp-Aws: - $ref: "#/components/examples/MCNS2Sp-Aws-Response" - MultiCloudNetwork2Sp-GCP: - $ref: "#/components/examples/MCNS2Sp-GCP-Response" - MultiCloudNetwork2Sp-IBM2: - $ref: "#/components/examples/MCNS2Sp-IBM2-Response" - MultiCloudNetwork2Sp-Azure: - $ref: "#/components/examples/MCNS2Sp-Azure-Response" - MultiCloudNetwork2Sp-OCI: - $ref: "#/components/examples/MCNS2Sp-OCI-Response" Fcr2Metal-Network: $ref: "#/components/examples/Fcr2Metal-Network" Colo2Network-EVPLAN_VC: @@ -881,10 +1422,8 @@ paths: $ref: "#/components/examples/Vd2AlibabaSP-Response" Vd2Sp-Google: $ref: "#/components/examples/Vd2GoogleSP-Response" - IXPublic-Peering-Connection: - $ref: "#/components/examples/IXPublicPeeringConnectionResponse" - IXPrivate-Peering-Connection: - $ref: "#/components/examples/IXPrivatePeeringConnectionResponse" + IX2Sp-PublicPeering_VC: + $ref: "#/components/examples/IXDedicatedPublicPeeringConnectionResponse" "400": description: Bad request content: @@ -970,9 +1509,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" + example: + - errorCode: EQ-300005 + errorMessage: You don't have permissions to perform READ operation. Please contact your master administrator to get the right permissions through Equinix Customer Portal or contact Equinix Support (support@equinix.com). "404": description: Not Found content: @@ -2668,11 +3207,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/400" - dryRun: - $ref: "#/components/examples/400_dry_run" + example: + - errorCode: EQ-3000035 + errorMessage: Invalid request body "401": description: Unauthorized content: @@ -2685,9 +3222,9 @@ paths: application/json: schema: $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" + example: + - errorCode: EQ-3000197 + errorMessage: User not authorized to perform given action "404": description: Not Found content: @@ -2749,6 +3286,8 @@ paths: $ref: "#/components/examples/PrecisionTimePtpStandardPackage" precisionTimeProductPtpEnterprisePackageCode: $ref: "#/components/examples/PrecisionTimePtpEnterprisePackage" + metroConnectProduct: + $ref: "#/components/examples/MetroConnectProduct" required: true responses: "200": @@ -2772,6 +3311,8 @@ paths: $ref: "#/components/examples/VirtualPortIX" precisionTimeService: $ref: "#/components/examples/PrecisionTimeService" + metroConnect: + $ref: "#/components/examples/MetroConnect" "400": description: Bad Request content: @@ -3387,12 +3928,6 @@ paths: required: true schema: $ref: "#/components/schemas/ServiceProfileId" - - name: If-Match - in: header - description: conditional request - required: true - schema: - type: string requestBody: content: application/json-patch+json: @@ -3401,6 +3936,8 @@ paths: examples: ServiceProfilePatchRequest: $ref: "#/components/examples/ServiceProfilePatchRequest" + ServiceProfilePatchRequestForVisibility: + $ref: "#/components/examples/ServiceProfilePatchRequestForVisibility" required: true responses: "200": @@ -3415,6 +3952,8 @@ paths: examples: ServiceProfile: $ref: "#/components/examples/ServiceProfilePatchResponse" + ServiceProfilePatchResponseForVisibility: + $ref: "#/components/examples/ServiceProfilePatchResponseForVisibility" "400": description: Bad request content: @@ -3451,15 +3990,86 @@ paths: examples: example: $ref: "#/components/examples/sp-404-get" - "412": - description: Precondition Failed + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-500" + "/fabric/v4/serviceProfiles/{serviceProfileId}/actions": + post: + tags: + - Service Profiles + summary: Profile Actions + description: This API provides capability to accept/reject service profile update requests + operationId: createServiceProfileAction + parameters: + - name: serviceProfileId + in: path + description: Service Profile UUID + required: true + schema: + $ref: "#/components/schemas/ServiceProfileId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ServiceProfileActionRequest" + examples: + AcceptProfileUpdate: + $ref: "#/components/examples/ServiceProfileActionRequest" + RejectProfileUpdate: + $ref: "#/components/examples/ServiceProfileActionRejectionRequest" + required: true + responses: + "201": + description: Successful operation + content: + application/json; charset=UTF-8: + schema: + $ref: "#/components/schemas/ServiceProfileActionResponse" + examples: + ServiceProfileActionResponse: + $ref: "#/components/examples/ServiceProfileActionResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-400" + "401": + description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorList" examples: example: - $ref: "#/components/examples/sp-412" + $ref: "#/components/examples/sp-401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-403-update" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/sp-404-get" "500": description: Internal Server Error content: @@ -4263,7 +4873,11 @@ paths: examples: portDryRunExample: $ref: "#/components/examples/PortCreateDryRunResponse" - "201": + bmmrPortDryRunExample: + $ref: "#/components/examples/bmmrSinglePortCreateDryRunResponse" + remotePortDryRunExample: + $ref: "#/components/examples/remoteSinglePortCreateDryRunResponse" + "202": description: Successful operation content: application/json: @@ -6894,122 +7508,47 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" - /fabric/v4/routeAggregations: + "/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search": post: tags: - - Route Aggregations - summary: Create Aggregations - description: This API provides capability to create a Route Aggregation - operationId: createRouteAggregation - parameters: [] + - Route Filter Rules + summary: Search Route Filter Rules + description: This API provides capability to search Route Filter Rules + operationId: searchRouteFilterRules + parameters: + - name: routeFilterId + in: path + description: Route Filters Id + required: true + schema: + $ref: "#/components/schemas/RouteFilterId" requestBody: content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsBase" + $ref: "#/components/schemas/RouteFilterRulesSearchRequest" examples: - RouteAggregationBgpIpv4Prefix: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" + SearchRouteFilterRulesAndRequest: + $ref: "#/components/examples/SearchRouteFilterRulesAndRequest" + SearchRouteFilterRulesOrRequest: + $ref: "#/components/examples/SearchRouteFilterRulesOrRequest" required: true - responses: - "202": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/RouteAggregationsData" - examples: - GetSpecificRouteAggregationResponse: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - TransientState: - $ref: "#/components/examples/400_transient_state" - "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" - "/fabric/v4/routeAggregations/{routeAggregationId}": - get: - tags: - - Route Aggregations - summary: Get Aggregation - description: This API provides capability to view a Route Aggregation by UUID - operationId: getRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" responses: "200": description: Successful operation content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsData" + $ref: "#/components/schemas/RouteFilterRulesSearchResponse" examples: - GetSpecificRouteAggregationResponse: - $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" + SearchRouteFilterRulesResponse: + $ref: "#/components/examples/SearchRouteFilterRulesResponse" "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: @@ -7029,91 +7568,11 @@ paths: 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" - delete: - tags: - - Route Aggregations - summary: Delete Aggregation - description: This API provides capability to delete a Route Aggregation - operationId: deleteRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" - responses: - "202": - description: Successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/RouteAggregationsData" - examples: - RouteAggregationDeleteBgpIpv4PrefixResponse: - $ref: "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" - "400": - description: Bad request - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/400_attached_connection" - "401": - description: Unauthorized - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/401" - "403": - description: Forbidden - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorList" - examples: - example: - $ref: "#/components/examples/403" - "404": - description: Route Aggregation 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" "415": description: Unsupported Media Type content: @@ -7132,33 +7591,22 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" - patch: + /fabric/v4/routeAggregations: + post: tags: - Route Aggregations - summary: Patch Aggregation - description: This API provides capability to partially update a Route Aggregation - operationId: patchRouteAggregationByUuid - parameters: - - name: routeAggregationId - in: path - description: Route Aggregations Id - required: true - schema: - $ref: "#/components/schemas/RouteAggregationId" + summary: Create Aggregations + description: This API provides capability to create a Route Aggregation + operationId: createRouteAggregation + parameters: [] requestBody: content: application/json: schema: - $ref: "#/components/schemas/RouteAggregationsPatchRequest" - examples: - RouteAggregationNamePatchExample: - $ref: "#/components/examples/PatchRouteAggregationName" - application/json-patch+json: - schema: - $ref: "#/components/schemas/RouteAggregationsPatchRequest" + $ref: "#/components/schemas/RouteAggregationsBase" examples: - RouteAggregationNamePatchExample: - $ref: "#/components/examples/PatchRouteAggregationName" + RouteAggregationBgpIpv4Prefix: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4Prefix" required: true responses: "202": @@ -7168,8 +7616,8 @@ paths: schema: $ref: "#/components/schemas/RouteAggregationsData" examples: - RouteAggregationNamePatchResponse: - $ref: "#/components/examples/RouteAggregationNamePatchResponse" + GetSpecificRouteAggregationResponse: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" "400": description: Bad request content: @@ -7177,8 +7625,257 @@ paths: schema: $ref: "#/components/schemas/ErrorList" examples: - example: - $ref: "#/components/examples/400_invalid_operation" + TransientState: + $ref: "#/components/examples/400_transient_state" + "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" + "/fabric/v4/routeAggregations/{routeAggregationId}": + get: + tags: + - Route Aggregations + summary: Get Aggregation + description: This API provides capability to view a Route Aggregation by UUID + operationId: getRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + GetSpecificRouteAggregationResponse: + $ref: "#/components/examples/RouteAggregationCreateBgpIpv4PrefixResponse" + "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" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/500_internal_error" + delete: + tags: + - Route Aggregations + summary: Delete Aggregation + description: This API provides capability to delete a Route Aggregation + operationId: deleteRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + responses: + "202": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + RouteAggregationDeleteBgpIpv4PrefixResponse: + $ref: "#/components/examples/RouteAggregationDeleteBgpIpv4PrefixResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/400_attached_connection" + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/401" + "403": + description: Forbidden + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/403" + "404": + description: 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" + patch: + tags: + - Route Aggregations + summary: Patch Aggregation + description: This API provides capability to partially update a Route Aggregation + operationId: patchRouteAggregationByUuid + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsPatchRequest" + examples: + RouteAggregationNamePatchExample: + $ref: "#/components/examples/PatchRouteAggregationName" + application/json-patch+json: + schema: + $ref: "#/components/schemas/RouteAggregationsPatchRequest" + examples: + RouteAggregationNamePatchExample: + $ref: "#/components/examples/PatchRouteAggregationName" + required: true + responses: + "202": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationsData" + examples: + RouteAggregationNamePatchResponse: + $ref: "#/components/examples/RouteAggregationNamePatchResponse" + "400": + description: Bad request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/400_invalid_operation" "401": description: Unauthorized content: @@ -8339,6 +9036,89 @@ paths: examples: example: $ref: "#/components/examples/500_internal_error" + "/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search": + post: + tags: + - Route Aggregation Rules + summary: Search Route Aggregation Rules + description: This API provides capability to search Route Aggregation Rules + operationId: searchRouteAggregationRules + parameters: + - name: routeAggregationId + in: path + description: Route Aggregations Id + required: true + schema: + $ref: "#/components/schemas/RouteAggregationId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationRulesSearchRequest" + examples: + SearchRouteAggregationRulesAndRequest: + $ref: "#/components/examples/SearchRouteAggregationRulesAndRequest" + SearchRouteAggregationRulesOrRequest: + $ref: "#/components/examples/SearchRouteAggregationRulesOrRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/RouteAggregationRulesSearchResponse" + examples: + SearchRouteAggregationRulesResponse: + $ref: "#/components/examples/SearchRouteAggregationRulesResponse" + "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: Route Aggregation Rule ID Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + "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" /fabric/v4/routers: post: tags: @@ -8656,7 +9436,7 @@ paths: tags: - Cloud Routers summary: Get Route Table Actions - description: This API provides capability to fetch action status + description: This API provides capability to fetch all actions for a given cloud router operationId: getCloudRouterActions parameters: - name: routerId @@ -8676,10 +9456,10 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/CloudRouterActionResponse" + $ref: "#/components/schemas/CloudRouterActionsSearchResponse" examples: - searchResponseExample: - $ref: "#/components/examples/CloudRouterActionResponse" + routerActionExample: + $ref: "#/components/examples/CloudRouterActionSearchResponse" "400": description: Bad request content: @@ -8833,7 +9613,7 @@ paths: tags: - Cloud Routers summary: Search Route Table Actions - description: This API provides capability to refresh route table and bgp session summary information + description: This API provides capability to search route table actions for a given cloud router operationId: searchRouterActions parameters: - name: routerId @@ -9553,6 +10333,184 @@ paths: $ref: "#/components/examples/error-400" Subnet Overlapping: $ref: "#/components/examples/error-400-overlappingSubnet" + "/fabric/v4/routers/{routerId}/routeFilters/search": + post: + tags: + - Route Filters + summary: Search Cloud Router Route Filter Attachments + description: This API provides capability to search route filter attachments for a given cloud router Beta + operationId: searchCloudRouterRouteFilterAttachments + parameters: + - name: routerId + in: path + description: Cloud Router UUID + required: true + schema: + $ref: "#/components/schemas/RouterId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteFiltersSearchBase" + examples: + searchRouteFiltersRequest: + $ref: "#/components/examples/CloudRouterSearchRouteFiltersRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteFiltersSearchResponse" + examples: + SearchRouteFiltersResponse: + $ref: "#/components/examples/CloudRouterSearchRouteFiltersResponse" + "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 Filter ID Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/404_invalid_id" + "415": + description: Unsupported Media Type + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/415" + "500": + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorList" + examples: + example: + $ref: "#/components/examples/500_internal_error" + "/fabric/v4/routers/{routerId}/routeAggregations/search": + post: + tags: + - Route Aggregations + summary: Search Cloud Router Route Aggregation Attachments + description: This API provides capability to search route aggregation attachments for a given cloud router Beta + operationId: searchCloudRouterRouteAggregationAttachments + parameters: + - name: routerId + in: path + description: Cloud Router UUID + required: true + schema: + $ref: "#/components/schemas/RouterId" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteAggregationsSearchBase" + examples: + searchRouteAggregationsRequest: + $ref: "#/components/examples/CloudRouterSearchRouteAggregationsRequest" + required: true + responses: + "200": + description: Successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/CloudRouterRouteAggregationsSearchResponse" + examples: + SearchRouteAggregationsResponse: + $ref: "#/components/examples/CloudRouterSearchRouteAggregationsResponse" + "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" + "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" /fabric/v4/routers/search: post: tags: @@ -12796,7 +13754,7 @@ paths: delete: tags: - Stream Alert Rules - summary: Update Stream Alert Rules + summary: Delete Stream Alert Rules description: This API provides capability to delete a user's stream alert rule operationId: deleteStreamAlertRuleByUuid parameters: @@ -13612,6 +14570,201 @@ paths: $ref: "#/components/schemas/ErrorList" components: schemas: + AgentTemplateGetAllResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/AgentTemplates" + ErrorList: + type: array + description: List of Error Message + items: + $ref: "#/components/schemas/Error" + AgentTemplateId: + type: string + description: Agent Template UUID + format: uuid + example: 657400f8-d360-11e9-bb65-2a2ae2dbcce5 + AgentTemplates: + type: object + properties: + href: + type: string + description: Agent Template URI + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: + type: string + description: type + example: ANO_AGENT_TEMPLATE + uuid: + type: string + description: Equinix-assigned access point identifier + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + name: + maxLength: 50 + minLength: 3 + type: string + description: Equinix-provided agent template name + description: + type: string + description: Equinix-provided agent template description + state: + type: string + description: Agent state + enum: + - PROVISIONING + - PROVISIONED + - REPROVISIONING + - DEPROVISIONING + - DEPROVISIONED + - FAILED + enabled: + type: boolean + description: Equinix-provided agent template enabled status + agentDefinition: + $ref: "#/components/schemas/AgentDefinition" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent Template object + AgentGetAllResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/Agents" + AgentPostRequest: + required: + - agentTemplate + - name + - project + - type + type: object + properties: + type: + type: string + example: ANO_AGENT + name: + maxLength: 50 + minLength: 3 + type: string + description: Customer-provided agent name + description: + maxLength: 500 + minLength: 0 + type: string + description: Customer-provided agent description + enabled: + type: boolean + description: Customer-provided agent enabled status + project: + $ref: "#/components/schemas/Project" + agentTemplate: + $ref: "#/components/schemas/AgentTemplate" + configuration: + $ref: "#/components/schemas/Configuration" + description: Create Agent + AgentTemplate: + type: object + properties: + uuid: + type: string + description: Agent Template Uuid + Configuration: + type: object + properties: + prompt: + type: string + description: Agent configuration prompt to be used for agent specification + Agents: + type: object + properties: + href: + type: string + description: Agent URI + format: uri + readOnly: true + example: https://api.equinix.com/fabric/v4/agents/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: + type: string + description: type + example: ANO_AGENT + uuid: + type: string + description: Equinix-assigned access point identifier + format: uuid + example: c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + name: + type: string + description: Customer-provided agent name + description: + type: string + description: Customer-provided agent description + state: + type: string + description: Agent state + enum: + - PROVISIONING + - PROVISIONED + - REPROVISIONING + - DEPROVISIONING + - DEPROVISIONED + - FAILED + enabled: + type: boolean + description: Customer-provided agent enabled status + project: + $ref: "#/components/schemas/Project" + agentTemplate: + $ref: "#/components/schemas/AgentTemplate" + configuration: + $ref: "#/components/schemas/Configuration" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent object + AgentId: + type: string + description: Agent UUID + format: uuid + example: 557400f8-d360-11e9-bb65-2a2ae2dbcce4 + AgentPatchRequest: + required: + - op + - path + - value + type: object + properties: + path: + type: string + description: path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt + example: /name + op: + type: string + description: Handy shortcut for operation name + example: replace + value: + description: new value for updated parameter + description: Update Agent + AgentGetActivities: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/AgentActivities" CloudEventAssetType: type: string enum: @@ -13624,6 +14777,7 @@ components: - projects - organizations - timeServices + - companyProfiles AssetId: type: string description: Asset UUID @@ -13659,11 +14813,6 @@ components: description: Data returned from the API call. items: $ref: "#/components/schemas/CloudEvent" - ErrorList: - type: array - description: List of Error Message - items: - $ref: "#/components/schemas/Error" CloudEventId: type: string description: Cloud Event UUID @@ -13936,8 +15085,6 @@ components: description: type: string description: Customer-provided connection description - state: - $ref: "#/components/schemas/ConnectionState" change: $ref: "#/components/schemas/Change" operation: @@ -14360,10 +15507,15 @@ components: - = - "!=" - ">" + - ">=" - < + - <= - LIKE + - ILKE - IS NOT NULL - IS NULL + - IN + - BETWEEN values: type: array items: @@ -14385,8 +15537,6 @@ components: - /aSide/accessPoint/account/accountName - /aSide/accessPoint/account/accountNumber - /aSide/accessPoint/router/uuid - - /aSide/accessPoint/linkProtocol/vlanCTag - - /aSide/accessPoint/linkProtocol/vlanSTag - /aSide/accessPoint/linkProtocol/vlanTagMin - /aSide/accessPoint/linkProtocol/vlanTagMax - /aSide/accessPoint/location/metroCode @@ -14398,7 +15548,10 @@ components: - /aSide/accessPoint/virtualDevice/name - /aSide/accessPoint/virtualDevice/uuid - /aSide/serviceToken/uuid + - /bandwidth - /change/status + - /changeLog/createdBy + - /changeLog/createdDateTime - /operation/equinixStatus - /operation/providerStatus - /project/projectId @@ -14406,8 +15559,6 @@ components: - /redundancy/priority - /zSide/accessPoint/account/accountName - /zSide/accessPoint/authenticationKey - - /zSide/accessPoint/linkProtocol/vlanCTag - - /zSide/accessPoint/linkProtocol/vlanSTag - /zSide/accessPoint/linkProtocol/vlanTagMin - /zSide/accessPoint/linkProtocol/vlanTagMax - /zSide/accessPoint/location/metroCode @@ -15072,6 +16223,8 @@ components: - type: object project: $ref: "#/components/schemas/Project" + change: + $ref: "#/components/schemas/ServiceProfileChange" changeLog: description: Seller Account for Service Profile. allOf: @@ -15083,6 +16236,45 @@ components: or more sets of access points (a set per each access point type) fulfilling the provider service. allOf: - $ref: "#/components/schemas/SimplifiedServiceProfile" + ServiceProfileChange: + required: + - createdDateTime + - type + type: object + properties: + uuid: + type: string + description: Uniquely identifies a change + type: + type: string + description: Type of change + example: SERVICE_PROFILE_VISIBILITY_UPDATE + status: + type: string + description: Current outcome of the change flow + enum: + - APPROVED + - COMPLETED + - FAILED + - REJECTED + - REQUESTED + - SUBMITTED_FOR_APPROVAL + createdDateTime: + type: string + description: Set when change flow starts + format: date-time + example: 2020-11-06T07:00:00Z + updatedDateTime: + type: string + description: Set when change object is updated + format: date-time + example: 2020-11-06T07:00:00Z + information: + type: string + description: Additional information + data: + $ref: "#/components/schemas/JsonPatch_1" + description: Current state of latest service profile change ServiceProfileSearchRequest: type: object properties: @@ -15222,6 +16414,43 @@ components: type: object description: value to replace with description: Replace attribute value or sub-resource in the existing model + ServiceProfileActionRequest: + required: + - type + type: object + properties: + type: + type: string + description: "Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION" + example: PROFILE_UPDATE_ACCEPTANCE + description: + type: string + description: Action description + example: Approved to migrate to public + description: Service Profile Action Request + ServiceProfileActionResponse: + type: object + properties: + href: + type: string + description: Service Profile Action URI + format: uri + readOnly: true + type: + type: string + description: "Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION" + example: PROFILE_UPDATE_ACCEPTANCE + uuid: + type: string + description: Equinix-assigned action identifier + format: uuid + comments: + type: string + description: Action comments + example: Approved to migrate to public + changeLog: + $ref: "#/components/schemas/Changelog" + description: Service Profile Action Response ServiceMetros: type: object properties: @@ -15322,6 +16551,8 @@ components: properties: and: $ref: "#/components/schemas/ServiceTokenSearchExpressions" + or: + $ref: "#/components/schemas/ServiceTokenSearchExpressions" property: $ref: "#/components/schemas/ServiceTokenSearchFieldName" operator: @@ -15829,8 +17060,6 @@ components: description: Port additional information items: $ref: "#/components/schemas/PortAdditionalInfo" - endCustomer: - $ref: "#/components/schemas/EndCustomer" physicalPorts: type: array description: Physical ports that implement this port @@ -15841,8 +17070,6 @@ components: description: Port Loas items: $ref: "#/components/schemas/PortLoa" - marketplaceSubscription: - $ref: "#/components/schemas/marketplaceSubscription" description: PortRequest is the Request Object for creating single and bulk fabric ports BulkPortRequest: type: object @@ -16403,6 +17630,118 @@ components: items: $ref: "#/components/schemas/RouteFilterRulesBase" description: Create Route Filter Rule POST request + RouteFilterRulesSearchRequest: + type: object + properties: + filter: + $ref: "#/components/schemas/RouteFilterRulesFilter" + pagination: + $ref: "#/components/schemas/PaginationRequest" + sort: + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleSortCriteria" + description: Search route filter rules + RouteFilterRulesFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/RouteFilterRuleAndExpression" + - $ref: "#/components/schemas/RouteFilterRuleOrExpression" + RouteFilterRuleAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleExpression" + description: AND expression containing multiple filter expressions + RouteFilterRuleExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/RouteFilterRuleAndExpression" + - $ref: "#/components/schemas/RouteFilterRuleOrExpression" + - $ref: "#/components/schemas/RouteFilterRuleSimpleExpression" + RouteFilterRuleOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteFilterRuleExpression" + description: OR expression containing multiple filter expressions + RouteFilterRuleSimpleExpression: + type: object + properties: + property: + type: string + description: | + Possible field names to use on filters: + * `/type` - Route Filter Rules Type + * `/name` - Route Filter Rules Name + * `/uuid` - Route Filter Rules uuid + * `/state` - Route Filter Rules status + * `/prefix` - Route Filter Rule Prefix + * `/prefixMatch` - Route Filter Rule Prefix Match + example: /name + operator: + type: string + description: | + Possible operators to use on filters: + * `=` - equal + * `!=` - not equal + * `[NOT] LIKE` - (not) like + * `[NOT] IN` - (not) in + * `ILIKE` - case-insensitive like + example: = + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + example: Route_Filter_Rule_Demo + description: Simple filter expression with property, operator, and values + RouteFilterRuleSortCriteria: + type: object + properties: + direction: + $ref: "#/components/schemas/RouteFilterRuleSortDirection" + property: + $ref: "#/components/schemas/RouteFilterRuleSortBy" + RouteFilterRuleSortDirection: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + RouteFilterRuleSortBy: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /name + - /state + - /prefix + - /prefixMatch + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + RouteFilterRulesSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route filter rules + items: + $ref: "#/components/schemas/RouteFilterRulesData" RouteAggregationsBase: required: - name @@ -16707,6 +18046,116 @@ components: items: $ref: "#/components/schemas/RouteAggregationRulesBase" description: Create Route Aggregation Rule POST request + RouteAggregationRulesSearchRequest: + type: object + properties: + filter: + $ref: "#/components/schemas/RouteAggregationRulesFilter" + pagination: + $ref: "#/components/schemas/PaginationRequest" + sort: + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleSortCriteria" + description: Search route aggregation rules + RouteAggregationRulesFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/RouteAggregationRuleAndExpression" + - $ref: "#/components/schemas/RouteAggregationRuleOrExpression" + RouteAggregationRuleAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleExpression" + description: AND expression containing multiple filter expressions + RouteAggregationRuleExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/RouteAggregationRuleAndExpression" + - $ref: "#/components/schemas/RouteAggregationRuleOrExpression" + - $ref: "#/components/schemas/RouteAggregationRuleSimpleExpression" + RouteAggregationRuleOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RouteAggregationRuleExpression" + description: OR expression containing multiple filter expressions + RouteAggregationRuleSimpleExpression: + type: object + properties: + property: + type: string + description: | + Possible field names to use on filters: + * `/type` - Route Aggregation Rules Type + * `/name` - Route Aggregation Rules Name + * `/uuid` - Route Aggregation Rules uuid + * `/state` - Route Aggregation Rules status + * `/prefix` - Route Aggregation Rule Prefix + example: /name + operator: + type: string + description: | + Possible operators to use on filters: + * `=` - equal + * `!=` - not equal + * `[NOT] LIKE` - (not) like + * `[NOT] IN` - (not) in + * `ILIKE` - case-insensitive like + example: = + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + example: Route_Aggregation_Rule_Demo + description: Simple filter expression with property, operator, and values + RouteAggregationRuleSortCriteria: + type: object + properties: + direction: + $ref: "#/components/schemas/RouteAggregationRuleSortDirection" + property: + $ref: "#/components/schemas/RouteAggregationRuleSortBy" + RouteAggregationRuleSortDirection: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + RouteAggregationRuleSortBy: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /name + - /state + - /prefix + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + RouteAggregationRulesSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route aggregation rules + items: + $ref: "#/components/schemas/RouteAggregationRulesData" CloudRouterPostRequest: required: - location @@ -16808,6 +18257,26 @@ components: - SUCCEEDED - FAILED - PENDING + CloudRouterActionsSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: Data returned from the API call. + items: + $ref: "#/components/schemas/CloudRouterActionResponse" + CloudRouterActionRequest: + required: + - type + type: object + properties: + type: + $ref: "#/components/schemas/CloudRouterActionType" + connection: + $ref: "#/components/schemas/RouterActionsConnection" + description: Cloud router action request CloudRouterActionResponse: required: - changeLog @@ -16837,16 +18306,6 @@ components: router: $ref: "#/components/schemas/RouterActionsRouter" description: Cloud router actions response object - CloudRouterActionRequest: - required: - - type - type: object - properties: - type: - $ref: "#/components/schemas/CloudRouterActionType" - connection: - $ref: "#/components/schemas/RouterActionsConnection" - description: Cloud router action request CloudRouterActionsSearchRequest: type: object properties: @@ -16935,16 +18394,6 @@ components: - /changeLog/updatedDateTime - /connection/name - /type - CloudRouterActionsSearchResponse: - type: object - properties: - pagination: - $ref: "#/components/schemas/Pagination" - data: - type: array - description: Data returned from the API call. - items: - $ref: "#/components/schemas/CloudRouterActionResponse" ActionId_1: type: string description: Action UUID @@ -17279,6 +18728,186 @@ components: changeLog: $ref: "#/components/schemas/Changelog" description: Schema representing a Gateway attaching or detaching on a Cloud Router. This schema defines the structure of the response returned when a Gateway is attached or detached to a Cloud Router. + CloudRouterRouteFiltersSearchBase: + type: object + properties: + filter: + $ref: "#/components/schemas/CloudRouterRouteFiltersFilter" + pagination: + $ref: "#/components/schemas/Pagination" + sort: + maxItems: 3 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RfAttachmentSortItem" + CloudRouterRouteFiltersFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteFilterAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterOrExpression" + CloudRouterRouteFilterAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteFilterExpression" + description: AND expression containing multiple filter expressions + CloudRouterRouteFilterExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteFilterAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterOrExpression" + - $ref: "#/components/schemas/CloudRouterRouteFilterSimpleExpression" + CloudRouterRouteFilterOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteFilterExpression" + description: OR expression containing multiple filter expressions + CloudRouterRouteFilterSimpleExpression: + type: object + properties: + property: + type: string + enum: + - /type + - /direction + - /attachmentStatus + operator: + type: string + values: + maxItems: 8 + minItems: 1 + type: array + items: + type: string + RfAttachmentSortItem: + type: object + properties: + property: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /direction + - /attachmentStatus + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + direction: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + CloudRouterRouteFiltersSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route filter attachments for a given cloud router + items: + $ref: "#/components/schemas/ConnectionRouteFilterData" + CloudRouterRouteAggregationsSearchBase: + type: object + properties: + filter: + $ref: "#/components/schemas/CloudRouterRouteAggregationsFilter" + pagination: + $ref: "#/components/schemas/Pagination" + sort: + maxItems: 3 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/RaAttachmentSortItem" + CloudRouterRouteAggregationsFilter: + description: Top-level filter that can be either an AND expression or OR expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteAggregationAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationOrExpression" + CloudRouterRouteAggregationAndExpression: + type: object + properties: + and: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteAggregationExpression" + description: AND expression containing multiple filter expressions + CloudRouterRouteAggregationExpression: + description: Filter expression that can be AND, OR, or a simple expression + anyOf: + - $ref: "#/components/schemas/CloudRouterRouteAggregationAndExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationOrExpression" + - $ref: "#/components/schemas/CloudRouterRouteAggregationSimpleExpression" + CloudRouterRouteAggregationOrExpression: + type: object + properties: + or: + maxItems: 8 + minItems: 1 + type: array + items: + $ref: "#/components/schemas/CloudRouterRouteAggregationExpression" + description: OR expression containing multiple filter expressions + CloudRouterRouteAggregationSimpleExpression: + type: object + properties: + property: + type: string + enum: + - /type + - /attachmentStatus + operator: + type: string + values: + type: array + items: + type: string + RaAttachmentSortItem: + type: object + properties: + property: + type: string + description: Possible field names to use on sorting + default: /changeLog/updatedDateTime + enum: + - /type + - /uuid + - /attachmentStatus + - /changeLog/createdDateTime + - /changeLog/updatedDateTime + direction: + type: string + description: Sorting direction + default: DESC + enum: + - DESC + - ASC + CloudRouterRouteAggregationsSearchResponse: + type: object + properties: + pagination: + $ref: "#/components/schemas/Pagination" + data: + type: array + description: List of route aggregation attachments for a given cloud router + items: + $ref: "#/components/schemas/ConnectionRouteAggregationData" CloudRouterSearchRequest: type: object properties: @@ -18423,6 +20052,8 @@ components: - metros - organizations - projects + - networkEdgeDevices + - companyProfiles StreamAsset: type: object properties: @@ -18901,75 +20532,120 @@ components: properties: type: type: string + example: COMPANY_PROFILE name: maxLength: 50 minLength: 1 type: string + example: Equinix summary: maxLength: 125 minLength: 1 type: string + example: Global interconnection and data center company description: maxLength: 450 minLength: 1 type: string + example: Equinix, Inc. connects the world's leading businesses to their customers, employees and partners inside the most interconnected data centers. notifications: type: array + example: + - type: CONTACT + emails: + - example@example.com + - type: NOTIFICATION + emails: + - example@example.com items: $ref: "#/components/schemas/Notification" webUrl: type: string + example: https://www.equinix.com contactUrl: type: string + example: https://www.equinix.com/contact-us CompanyProfileResponse: type: object properties: href: type: string + example: https://api.equinix.com/fabric/v4/companyProfiles/123e4567-e89b-12d3-a456-426614174000 uuid: type: string + example: 123e4567-e89b-12d3-a456-426614174000 type: type: string + example: COMPANY_PROFILE name: maxLength: 50 minLength: 1 type: string + example: Equinix summary: maxLength: 125 minLength: 1 type: string + example: Global interconnection and data center company description: maxLength: 450 minLength: 1 type: string + example: Equinix, Inc. connects the world's leading businesses to their customers, employees and partners inside the most interconnected data centers. state: $ref: "#/components/schemas/CompanyProfileState" + account: + $ref: "#/components/schemas/CompanyProfileResponse_account" metros: type: array + example: + - href: https://api.equinix.com/fabric/v4/metros/SV + code: SV + name: Silicon Valley items: $ref: "#/components/schemas/CompanyMetro" logo: $ref: "#/components/schemas/CompanyLogo" tags: type: array + example: + - href: https://api.equinix.com/fabric/v4/tags/260af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 260af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/TagResponse" serviceProfiles: type: array + example: + - href: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/CompanyServiceProfile" privateServices: type: array + example: + - href: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + - href: https://api.equinix.com/fabric/v4/privateServices/8a5685a6-063d-41ac-9279-d32431e8d8f6 + uuid: 8a5685a6-063d-41ac-9279-d32431e8d8f6 items: $ref: "#/components/schemas/PrivateService" notifications: type: array + example: + - type: CONTACT + emails: + - example@example.com + - type: NOTIFICATION + emails: + - example@example.com items: $ref: "#/components/schemas/Notification" webUrl: type: string + example: https://www.equinix.com contactUrl: type: string + example: https://www.equinix.com/contact-us change: $ref: "#/components/schemas/CompanyProfileChange" changeLog: @@ -18985,19 +20661,26 @@ components: minLength: 1 type: string description: The operation to perform + example: replace enum: - replace - add - remove + x-enum-varnames: + - REPLACE + - ADD + - REMOVE path: minLength: 1 pattern: ^/ type: string description: JSON Pointer path to the field to modify (e.g., /name, /description, /summary, /webUrl, /notifications) - example: /name + example: /logo value: type: object description: The value to update the field to + example: + uuid: 4cd19a0b-049c-4dfd-a626-ce25bf312495 CompanyProfileSearchRequest: type: object properties: @@ -19025,20 +20708,26 @@ components: values: type: array description: Values to compare against + example: + - PENDING + - PROVISIONED items: type: string CompanyProfileSearchFieldName: type: string description: Searchable field names in company profile + example: /tags/name OperatorEnum: type: string description: Comparison operators for filtering + example: = Sort: type: object properties: property: type: string - description: Property to sort by + description: Property to sort by((currently supports tags with filter syntax) + example: /tags/@name=equinix.fabric.spotlight.category.featured direction: $ref: "#/components/schemas/CompanyProfileSortDirection" CompanyProfileSearchResponse: @@ -19061,15 +20750,20 @@ components: type: type: string description: CompanyProfile Action Type + example: COMPANY_PROFILE_CREATION_ACCEPTANCE comments: type: string description: Optional comments for the action + example: Approving company profile ServiceProfileListResponse: type: object properties: data: type: array description: List of service profiles + example: + - href: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/CompanyServiceProfile" AttachServiceProfileResponse: @@ -19081,15 +20775,19 @@ components: href: type: string description: URL to the attached service profile + example: https://api.equinix.com/fabric/v4/serviceProfiles/423af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the service or attachment + example: SERVICE_PROFILE uuid: type: string description: Unique identifier for the service profile + example: 423af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED TagListResponse: type: object properties: @@ -19133,21 +20831,28 @@ components: href: type: string description: URL to the attached tag + example: https://api.equinix.com/fabric/v4/tags/260af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the tag or attachment + example: TAG uuid: type: string description: Unique identifier for the tag + example: 260af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED PrivateServiceListResponse: type: object properties: data: type: array description: List of private services + example: + - href: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 + uuid: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 items: $ref: "#/components/schemas/PrivateService" AttachPrivateServiceResponse: @@ -19159,15 +20864,19 @@ components: href: type: string description: URL to the attached private service + example: https://api.equinix.com/fabric/v4/privateServices/460af68b-42f0-4f2e-9c5c-2fbd44b4b387 type: type: string description: Type of the private service or attachment + example: PRIVATE_SERVICE uuid: type: string description: Unique identifier for the private service + example: 460af68b-42f0-4f2e-9c5c-2fbd44b4b387 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED AttachLogoResponse: required: - type @@ -19177,18 +20886,23 @@ components: href: type: string description: URL to the attached logo + example: https://api.equinix.com/fabric/v4/companyProfiles/123e4567-e89b-12d3-a456-426614174000/logos/logo-uuid type: type: string description: Type of the logo or attachment + example: COMPANY_LOGO uuid: type: string description: Unique identifier for the logo + example: 789e0123-e89b-12d3-a456-426614174000 attachmentStatus: type: string description: Status of the attachment operation + example: ATTACHED extensionType: type: string description: Extension type of logo + example: .png LogoRequest: required: - description @@ -19206,14 +20920,17 @@ components: minLength: 1 type: string description: Name of the Logo + example: Equinix Logo description: maxLength: 125 minLength: 1 type: string description: Description of the logo + example: Company branding logo type: type: string description: Type of logo + example: COMPANY_LOGO description: Equinix Fabric Logo Request Object LogoResponse: type: object @@ -19229,9 +20946,10 @@ components: type: type: string description: Type of logo + example: COMPANY_LOGO name: type: string - example: GROQ + example: Equinix Logo description: type: string example: Company branding logo @@ -19240,7 +20958,7 @@ components: example: CREATED extensionType: type: string - example: png + example: .png changelog: $ref: "#/components/schemas/Changelog" description: Equinix Fabric Logo Response Object @@ -19265,6 +20983,103 @@ components: type: string description: Display name of the Tag description: Equinix Fabric Tag Request Object + AgentDefinition: + type: object + properties: + url: + type: string + description: Agent Template ReadMe (.md) Definition + Changelog: + type: object + properties: + createdBy: + type: string + description: Created by User Key + example: johnsmith + createdByFullName: + type: string + description: Created by User Full Name + example: John Smith + createdByEmail: + type: string + description: Created by User Email Address + example: john.smith@example.com + createdDateTime: + type: string + description: Created by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + updatedBy: + type: string + description: Updated by User Key + example: johnsmith + updatedByFullName: + type: string + description: Updated by User Full Name + example: John Smith + updatedByEmail: + type: string + description: Updated by User Email Address + example: john.smith@example.com + updatedDateTime: + type: string + description: Updated by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + deletedBy: + type: string + description: Deleted by User Key + example: johnsmith + deletedByFullName: + type: string + description: Deleted by User Full Name + example: John Smith + deletedByEmail: + type: string + description: Deleted by User Email Address + example: john.smith@example.com + deletedDateTime: + type: string + description: Deleted by Date and Time + format: date-time + example: 2020-11-06T07:00:00Z + description: Change log + Project: + required: + - projectId + type: object + properties: + projectId: + type: string + description: Subscriber-assigned project ID + example: 44f4c4f8-2f39-494e-838c-d8e640591be5 + AgentActivities: + type: object + properties: + href: + type: string + description: Agent Activities URI + format: uuid + type: + type: string + description: type + example: AGENT_ACTIVITY + uuid: + type: string + description: Equinix-assigned agent operation identifier + format: uuid + readOnly: true + agent: + $ref: "#/components/schemas/Agent" + status: + type: string + description: Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED + example: COMPLETED + metadata: + $ref: "#/components/schemas/AgentActivities_metadata" + changeLog: + $ref: "#/components/schemas/Changelog" + description: Agent Activities object CloudEventData: type: object properties: @@ -19379,8 +21194,7 @@ components: - IPWAN_VC - IA_VC - MC_VC - - IX_PUBLIC_VC - - IX_PRIVATE_VC + - IX_VC Order: type: object properties: @@ -19405,6 +21219,9 @@ components: type: integer description: Term length in months, valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case). default: 1 + contractedBandwidth: + type: integer + description: Contracted bandwidth SimplifiedNotification: required: - emails @@ -19422,6 +21239,8 @@ components: - PROFILE_LIFECYCLE - ALL - SALES_REP_NOTIFICATIONS + - TECHNICAL + - ORDERING sendInterval: type: string emails: @@ -19451,27 +21270,12 @@ components: $ref: "#/components/schemas/ServiceToken" accessPoint: $ref: "#/components/schemas/AccessPoint" - internetAccess: - $ref: "#/components/schemas/InternetAccess" - companyProfile: - $ref: "#/components/schemas/ConnectionCompanyProfile" - invitation: - $ref: "#/components/schemas/ConnectionInvitation" additionalInfo: type: array description: Any additional information, which is not part of connection metadata or configuration items: $ref: "#/components/schemas/ConnectionSideAdditionalInfo" description: Connection configuration object for each side of multi-segment connection - Project: - required: - - projectId - type: object - properties: - projectId: - type: string - description: Subscriber-assigned project ID - example: 44f4c4f8-2f39-494e-838c-d8e640591be5 ConnectionSideAdditionalInfo: type: object properties: @@ -19526,9 +21330,7 @@ components: - DRAFT - FAILED - PENDING - - PROVISIONED - PROVISIONING - - REPROVISIONING - "" Change: required: @@ -19639,61 +21441,6 @@ components: type: integer description: Reseller customer organization identifier format: int64 - Changelog: - type: object - properties: - createdBy: - type: string - description: Created by User Key - example: johnsmith - createdByFullName: - type: string - description: Created by User Full Name - example: John Smith - createdByEmail: - type: string - description: Created by User Email Address - example: john.smith@example.com - createdDateTime: - type: string - description: Created by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - updatedBy: - type: string - description: Updated by User Key - example: johnsmith - updatedByFullName: - type: string - description: Updated by User Full Name - example: John Smith - updatedByEmail: - type: string - description: Updated by User Email Address - example: john.smith@example.com - updatedDateTime: - type: string - description: Updated by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - deletedBy: - type: string - description: Deleted by User Key - example: johnsmith - deletedByFullName: - type: string - description: Deleted by User Full Name - example: John Smith - deletedByEmail: - type: string - description: Deleted by User Email Address - example: john.smith@example.com - deletedDateTime: - type: string - description: Deleted by Date and Time - format: date-time - example: 2020-11-06T07:00:00Z - description: Change log ConnectionChangeOperation: required: - op @@ -20040,6 +21787,25 @@ components: value: $ref: "#/components/schemas/RoutingProtocolBase" description: Routing Protocol change operation data + SimplifiedLocation: + type: object + properties: + metroHref: + type: string + example: https://api.equinix.com/fabric/v4/metros/AM + region: + type: string + example: AMER, APAC, EMEA + metroName: + type: string + example: Amsterdam + metroCode: + type: string + example: AM + ibx: + type: string + example: AM1 + deprecated: true PlatformChangelog: type: object properties: @@ -20179,25 +21945,6 @@ components: enum: - PRIVATE - PUBLIC - SimplifiedLocation: - type: object - properties: - metroHref: - type: string - example: https://api.equinix.com/fabric/v4/metros/AM - region: - type: string - example: AMER, APAC, EMEA - metroName: - type: string - example: Amsterdam - metroCode: - type: string - example: AM - ibx: - type: string - example: AM1 - deprecated: true ServiceProfileStateEnum: type: string description: Equinix assigned state. @@ -20721,6 +22468,16 @@ components: default: /device/name enum: - /device/name + - /name + - /state + - /location/metroName + - /demarcationPointIbx + - /device/redundancy/priority + - /lagEnabled + - /physicalPortsSpeed + - /encapsulation/type + - /physicalPorts/tether/crossConnectId + - /package/code PortPackage: required: - code @@ -22077,6 +23834,32 @@ components: enum: - DESC - ASC + Agent: + type: object + properties: + uuid: + type: string + description: Agent Uuid + format: uuid + type: + type: string + example: ANO_AGENT + ChatMessage: + type: object + properties: + messages: + $ref: "#/components/schemas/Messages" + description: Chat message and tool call information during the agent operation + Messages: + type: array + description: List of chat messages + items: + $ref: "#/components/schemas/Messages_inner" + ToolCallInformation: + type: array + description: List of tools called during the agent operation + items: + $ref: "#/components/schemas/ToolCallInformation_inner" ConnectionPriority: type: string description: Connection priority in redundancy group @@ -22121,8 +23904,6 @@ components: $ref: "#/components/schemas/VirtualNetwork" interconnection: $ref: "#/components/schemas/MetalInterconnection" - vpic_interface: - $ref: "#/components/schemas/VpicInterface" role: type: string description: E-Tree network connection role @@ -22183,12 +23964,7 @@ components: - PROVISIONING - REJECTED - PENDING_BGP - - OUT_OF_BANDWIDTH - - DELETED - ERROR - - ERRORED - - NOTPROVISIONED - - NOT_PROVISIONED - ORDERING - DELETING - PENDING DELETE @@ -22201,14 +23977,6 @@ components: - REJECTED - PENDING_DELETE - PROVISIONED - - BEING_REPROVISIONED - - BEING_DEPROVISIONED - - BEING_PROVISIONED - - CREATED - - ERRORED - - PENDING_DEPROVISIONING - - APPROVED - - ORDERING - PENDING_APPROVAL - NOT_PROVISIONED - DEPROVISIONING @@ -22219,16 +23987,11 @@ components: - PENDING_PROVIDER_VLAN - DEPROVISIONED - DELETED - - PENDING_BANDWIDTH_APPROVAL - AUTO_APPROVAL_FAILED - - UPDATE_PENDING - - DELETED_API - - MODIFIED - PENDING_PROVIDER_VLAN_ERROR - DRAFT - CANCELLED - PENDING_INTERFACE_CONFIGURATION - - PENDING_ACTIVATION RouteTableEntryType: type: string description: Route table entry type @@ -22278,6 +24041,7 @@ components: - VIRTUAL_PORT_PRODUCT - CLOUD_ROUTER_PRODUCT - PRECISION_TIME_PRODUCT + - METRO_CONNECT_PRODUCT PriceCharge: type: object properties: @@ -22677,6 +24441,7 @@ components: - NETWORK - METAL_NETWORK - VPIC_INTERFACE + - APP_LINK SimplifiedPort: type: object properties: @@ -23390,6 +25155,11 @@ components: items: $ref: "#/components/schemas/ValidateRequest_filter_and" description: Filters + CompanyProfileResponse_account: + type: object + properties: + rootOrgId: + type: string Response_incomplete_details: type: object properties: @@ -23420,6 +25190,13 @@ components: type: integer description: The number of reasoning tokens. description: A detailed breakdown of the output tokens. + AgentActivities_metadata: + type: object + properties: + chatMessage: + $ref: "#/components/schemas/ChatMessage" + toolCallInformation: + $ref: "#/components/schemas/ToolCallInformation" Metric_resource: type: object properties: @@ -23480,6 +25257,28 @@ components: href: type: string format: uri + Messages_inner: + type: object + properties: + type: + type: string + description: Role of the message sender user or assistant + example: user + content: + type: string + description: Content of the chat message + ToolCallInformation_inner: + type: object + properties: + name: + type: string + description: Name of tools called + input: + type: string + description: Content of the tool request + response: + type: string + description: Content of the tool response VirtualConnectionPriceASide_accessPoint_port_settings: type: object properties: @@ -23693,13 +25492,13 @@ components: correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 "403": value: - - errorCode: EQ-3040047 + - errorCode: EQ-3045003 errorMessage: Operation not allowed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Operation not allowed for current user "404": value: - - errorCode: EQ-3040020 + - errorCode: EQ-3045811 errorMessage: uuid not found correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: uuid not found @@ -23719,10 +25518,257 @@ components: reason: The payload format is in an unsupported format "500": value: - - errorCode: EQ-3040030 + - errorCode: EQ-3045004 errorMessage: Internal Server Error correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Internal Server Error + AgentTemplatesGetAllResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agentTemplates/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT_TEMPLATE + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: CONNECTION BANDWIDTH UPGRADER AGENT TEMPLATE + description: connection bandwidth upgrader agent template + state: PROVISIONED + enabled: true + agentDefinition: + url: /equinix/agent-factory/refs/heads/use_pdf_html/agent_factory_schema/equinix/fabric/v1/event_driven/upgrade-bw-primary-connection.md + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214 + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentTemplate_401: + value: + - errorCode: EQ-3164013 + errorMessage: User not found in request or invalid. + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - reason: You are unauthorized to perform this operation + AgentTemplate_403: + value: + - errorCode: EQ-3164013 + errorMessage: Operation not allowed + correlationId: 8a72af9d-23f7-4b90-8237-0987130b42dd + details: Operation not allowed for current user + AgentTemplate_404: + value: + - errorCode: EQ-3164811 + errorMessage: Agent Template not found or already deleted + correlationId: 9b6baf30-3eb0-458c-af8b-fff3fae32bc7 + details: Agent Template not found or already deleted + AgentTemplate_500: + value: + - errorCode: EQ-3164004 + errorMessage: Internal Server Error + correlationId: f9018571-1001-4422-978b-bfa38ed6b92e + details: Internal Server Error + AgentTemplatesResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agentTemplates/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT_TEMPLATE + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: CONNECTION BANDWIDTH UPGRADER AGENT TEMPLATE + description: connection bandwidth upgrader agent template + state: PROVISIONED + enabled: true + agentDefinition: + url: /equinix/agent-factory/refs/heads/use_pdf_html/agent_factory_schema/equinix/fabric/v1/event_driven/upgrade-bw-primary-connection.md + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214 + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentGetAllResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONED + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + Agent_401: + value: + - errorCode: EQ-3164013 + errorMessage: User not found in request or invalid. + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - reason: You are unauthorized to perform this operation + Agent_403: + value: + - errorCode: EQ-3164013 + errorMessage: Operation not allowed + correlationId: 8a72af9d-23f7-4b90-8237-0987130b42dd + details: Operation not allowed for current user + Agent_404: + value: + - errorCode: EQ-3164811 + errorMessage: Agent not found or already deleted + correlationId: 9b6baf30-3eb0-458c-af8b-fff3fae32bc7 + details: Agent not found or already deleted + Agent_500: + value: + - errorCode: EQ-3164004 + errorMessage: Internal Server Error + correlationId: f9018571-1001-4422-978b-bfa38ed6b92e + details: Internal Server Error + AgentPostRequestExample: + value: + type: ANO_AGENT + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + AgentPostResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + deletedBy: testuser + deletedDateTime: 2024-05-010T16:21:18.545214Z + Agent_415: + value: + - errorCode: EQ-3164009 + errorMessage: Unsupported media type, please check the request's Content-Type or Content-Encoding + correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 + additionalInfo: + - property: contentType + reason: The payload format is in an unsupported format + AgentResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + AgentDeleteResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent + description: connection bandwidth upgrader agent + state: DEPROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + deletedBy: testuser + deletedDateTime: 2024-05-010T16:21:18.545214Z + AgentPatchRequestExample: + value: + - name: /name + op: /replace + value: bandwidth-upgrader-agent-updated + AgentPatchResponseExample: + value: + href: https://api.equinix.com/fabric/v4/agents/d684aa26-8276-48b7-bb42-a6d9def0a418 + type: ANO_AGENT + uuid: d684aa26-8276-48b7-bb42-a6d9def0a418 + name: bandwidth-upgrader-agent-updated + description: connection bandwidth upgrader agent updated + state: PROVISIONING + enabled: true + project: + projectId: dadd3ab6-c0af-430c-8216-43d44f08c1c5 + agentTemplate: + uuid: 657400f8-c0af-430c-8216-43d44f08c1c5 + configuration: + prompt: Connection uuid is . Alert rule is . Upgrade bandwidth to 10GB. + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z + updatedBy: testuser + updatedDateTime: 2024-05-06T16:21:18.545214Z + AgentActivitiesResponseExample: + value: + pagination: + offset: 0 + limit: 20 + total: 1 + data: + - href: https://api.equinix.com/fabric/v4/agents/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/activities + type: AGENT_ACTIVITY + uuid: 123e4567-e89b-12d3-a456-426614174000 + agent: + uuid: 3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 + type: ANO_AGENT + status: COMPLETED + metadata: + chatMessage: + messages: + - type: user + content: |- + Here are additional parameters: json + { + "connection_uuid": "456e4567-e89b-12d3-a456-426614174000", + "operand": "ABOVE", + "critical_threshold": 400000, + "stream_uuid": 789e4567-e89b-12d3-a456-426614174000 + }. Follow the instructions step by step and complete all the operations. + - type: assistant + content: The agent is setup process has been successfully completed. + toolCallInformation: + - name: search_connections + input: '{"query":{"filter":{"and":[{"property":"/uuid","operator":"=","values":["456e4567-e89b-12d3-a456-426614174000"]}]},"pagination":{"limit":5}}}' + response: '{"results":[{"uuid":"456e4567-e89b-12d3-a456-426614174000","name":"Primary Connection","bandwidth":"1Gbps"}]}' + changeLog: + createdBy: testuser + createdDateTime: 2024-05-06T16:21:18.545214Z get-cloud-events-by-asset-id: value: pagination: @@ -24350,7 +26396,7 @@ components: COLO2AlibabaSPwithDot1q: value: type: EVPL_VC - name: My-Layer2-Connection-3 + name: port2alibaba-connection-1 bandwidth: 1000 redundancy: priority: PRIMARY @@ -24409,57 +26455,54 @@ components: - type: ALL emails: - test@test.com - COLO2AzureSPwithDot1q-Primary: + COLO2AzureSP-Primary: value: type: EVPL_VC - name: Primary-Azure - bandwidth: 1000 + name: port2azure-connection-1 + bandwidth: 100 redundancy: priority: PRIMARY + order: + termLength: 1 aSide: accessPoint: type: COLO port: - uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d + uuid: d166b9ce-79ed-4ea6-8f8b-785fd69f3dcc linkProtocol: type: DOT1Q - vlanTag: 1001 - order: - purchaseOrderNumber: po1234 + vlanTag: 123 zSide: accessPoint: type: SP profile: type: L2_PROFILE - uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c + uuid: a1390b22-abe0-4e93-ad37-85beef9d254a location: metroCode: DC - linkProtocol: - type: QINQ - vlanCTag: 1234 - peeringType: MICROSOFT + peeringType: PRIVATE authenticationKey: xxx-xxx-xxx + project: + projectId: 16799d66-ef43-445c-ba29-d17522d8a131 notifications: - type: ALL emails: - test@test.com - COLO2AzureSPwithQinq-Secondary: + COLO2GoogleSPwithDot1q: value: type: EVPL_VC - name: Secondary-Azure - bandwidth: 1000 + name: My-Layer2-Connection-3 + bandwidth: 50 redundancy: - group: e04db764-f865-470b-8394-d2efdd651577 - priority: SECONDARY + priority: PRIMARY aSide: accessPoint: type: COLO port: uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d linkProtocol: - type: QINQ - vlanSTag: 1001 - vlanCTag: 1002 + type: DOT1Q + vlanTag: 1001 order: purchaseOrderNumber: po1234 zSide: @@ -24470,16 +26513,19 @@ components: uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c location: metroCode: DC - authenticationKey: xxx-xxx-xxx + authenticationKey: xx-xxx-xx-xxxxx/us-west1/1 + sellerRegion: us-west1 + project: + projectId: 16799d66ef43 notifications: - type: ALL emails: - - test@test.com - COLO2GoogleSPwithDot1q: + - fabric@test.com + COLO2IBM_1: value: type: EVPL_VC name: My-Layer2-Connection-3 - bandwidth: 50 + bandwidth: 1000 redundancy: priority: PRIMARY aSide: @@ -24500,15 +26546,18 @@ components: uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c location: metroCode: DC - authenticationKey: xx-xxx-xx-xxxxx/us-west1/1 - sellerRegion: us-west1 - project: - projectId: 16799d66ef43 + authenticationKey: xxx-xxx-xxx + sellerRegion: San Jose 2 notifications: - type: ALL emails: - - fabric@test.com - COLO2IBM_1: + - test@test.com + additionalInfo: + - key: ASN + value: 1234 + - key: Global + value: false + COLO2IBM_2: value: type: EVPL_VC name: My-Layer2-Connection-3 @@ -24544,47 +26593,11 @@ components: value: 1234 - key: Global value: false - COLO2IBM_2: - value: - type: EVPL_VC - name: My-Layer2-Connection-3 - bandwidth: 1000 - redundancy: - priority: PRIMARY - aSide: - accessPoint: - type: COLO - port: - uuid: a00cef6f-8e35-4794-9ff9-665e084e4e6d - linkProtocol: - type: DOT1Q - vlanTag: 1001 - order: - purchaseOrderNumber: po1234 - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 22d4e853-ef33-4ff0-b5b2-a2b1d5dfa50c - location: - metroCode: DC - authenticationKey: xxx-xxx-xxx - sellerRegion: San Jose 2 - notifications: - - type: ALL - emails: - - test@test.com - additionalInfo: - - key: ASN - value: 1234 - - key: Global - value: false - - key: BGP_IBM_CIDR - value: 172.16.0.18/30 - - key: BGP_CER_CIDR - value: 172.16.0.19/30 - COLO2OracleSPwithDot1q: + - key: BGP_IBM_CIDR + value: 172.16.0.18/30 + - key: BGP_CER_CIDR + value: 172.16.0.19/30 + COLO2OracleSPwithDot1q: value: type: EVPL_VC name: My-Layer2-Connection-3 @@ -26064,171 +28077,6 @@ components: - type: ALL emails: - test@test.com - MCNS2Sp-Alibaba: - value: - type: EVPL_VC - name: My-MCNS2Alibaba-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 4c4b8edf-873b-4c6c-805a-edb2c335bd6c - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east-1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-Aws: - value: - type: EVPL_VC - name: My-MCNS2Aws-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 9127bb72-5f4f-4517-be74-3af7ce612687 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east-1 - project: - projectId: b543e64d-1e13-423a-9d81-4eae7b0e1959 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-GCP: - value: - type: EVPL_VC - name: My-MCNS2GCP-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-east1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-IBM2: - value: - type: EVPL_VC - name: My-MCNS2IBM2-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: Washington 2 - additionalInfo: - - key: ASN - value: 12345 - - key: BGP_CER_CIDR - value: 172.16.0.17/30 - - key: BGP_IBM_CIDR - value: 172.16.0.18/30 - - key: Global - value: false - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-Azure: - value: - type: EVPL_VC - name: My-MCNS2Azure-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: a1390b22-bbe0-4e93-ad37-85beef9d254d - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - peeringType: PRIVATE - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com - MCNS2Sp-OCI: - value: - type: EVPL_VC - name: My-MCNS2OCI-Connection - bandwidth: 50 - aSide: - accessPoint: - type: VPIC_INTERFACE - authenticationKey: xxxx-xxx-xxxx - zSide: - accessPoint: - type: SP - profile: - type: L2_PROFILE - uuid: 60ef0382-cdaa-44e7-bd36-b803731816b8 - location: - metroCode: DC - authenticationKey: xxxx-xxx-xxxx - sellerRegion: us-ashburn-1 - project: - projectId: 16799d66-ef43-445c-ba29-d17522d8a137 - notifications: - - type: ALL - emails: - - fabric@gmail.com - - fabric1@gmail.com Vd2IAProfile-Request: value: type: IA_VC @@ -26291,43 +28139,20 @@ components: - type: ALL emails: - test@test.com - IXPublicPeeringConnection: + IXDedicatedPublicPeeringConnection: value: - type: IX_PUBLIC_VC - name: Connection-1-Public-Connection - aSide: - accessPoint: - type: COLO - port: - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - zSide: - accessPoint: - type: SP - profile: - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - notifications: - - type: ALL - emails: - - test@test.com - project: - projectId: 03ed2230-604a-494c-bca2-c042d38d80bc - IXPrivatePeeringConnection: - value: - type: IX_PRIVATE_VC - name: Private-Connection-1 + type: IX_VC + name: Virtual-Connection-1 aSide: accessPoint: type: COLO port: uuid: 99e83e59-fd26-4134-b1b3-4c5dea6924d6 - linkProtocol: - type: DOT1Q - vlanTag: 111 zSide: accessPoint: type: SP profile: - uuid: c2b7557e-95dc-412d-8dff-abbcb242ccc2 + uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 notifications: - type: ALL emails: @@ -26772,6 +28597,55 @@ components: createdDateTime: 2020-05-21T10:30:00Z project: projectId: 37c8212c-c393-465c-8267-09d28c49774c + COLO2AzureSP-Primary-Response: + value: + href: https://api.equinix.com/fabric/v4/connections/5901c429-cd23-4149-b1cc-5f1b10cc5041 + type: EVPL_VC + uuid: 5901c429-cd23-4149-b1cc-5f1b10cc5041 + name: port2azure-connection-1 + operation: + providerStatus: PROVISIONING + equinixStatus: PROVISIONING + order: + billingTier: Up to 200 MB + termLength: 1 + notifications: + - type: ALL + emails: + - fabric@equinix.com + changeLog: + createdBy: fabricuser + createdDateTime: 2026-03-10T02:26:31.546Z + updatedBy: fabricuser + updatedDateTime: 2026-03-10T02:26:31.546Z + bandwidth: 100 + redundancy: + group: ce76ec16-5857-4472-9067-2fa3d7a9f52q + priority: PRIMARY + aSide: + accessPoint: + location: + metroHref: https://api.equinix.com/fabric/v4/metros/DA + metroCode: DA + port: + href: https://api.equinix.com/fabric/v4/ports/d966b9ce-79ed-4ea6-8f8a-785fd69f3dcb + type: XF_PORT + uuid: d966b9ce-79ed-4ea6-8f8a-785fd69f3dcb + name: 1-DA1-CX-PRI-012345 + linkProtocol: + type: DOT1Q + vlanTag: 123 + zSide: + accessPoint: + location: + metroHref: https://api.equinix.com/fabric/v4/metros/DC + metroCode: DC + profile: + href: https://api.equinix.com/fabric/v4/serviceProfiles/a1390b22-bbe0-4e93-ad37-85beef9d254a + type: L2_PROFILE + name: Azure ExpressRoute + uuid: a1390b22-bbe0-4e93-ad37-85beef9d254a + authenticationKey: xxxx-xxx-xxxx COLO2GoogleSPwithDot1q-Response: value: type: EVPL_VC @@ -26790,12 +28664,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T14:25:30.509Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T14:25:30.509Z bandwidth: 50 redundancy: @@ -26829,7 +28699,7 @@ components: type: EVPL_VC href: https://api.equinix.com/fabric/v4/connections/2c7bb68e-f560-41ac-9950-e62c87be191e uuid: 2c7bb68e-f560-41ac-9950-e62c87be191e - name: vd2alibaba-connection-1 + name: port2alibaba-connection-1 operation: providerStatus: PROVISIONING equinixStatus: PROVISIONING @@ -26841,12 +28711,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-05-02T20:07:38.626Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-05-02T20:07:38.626Z bandwidth: 50 redundancy: @@ -26893,12 +28759,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-05-02T20:25:09.841Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-05-02T20:25:09.841Z bandwidth: 1000 redundancy: @@ -27233,8 +29095,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2Colo-ResponseExample: value: @@ -27273,8 +29133,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2IpWan-response: value: @@ -27317,8 +29175,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z Fcr2Sp-marketplaceSubscription-Response: value: @@ -27358,8 +29214,6 @@ components: - test1@equinix.com changeLog: createdBy: test - createdByFullName: test - createdByEmail: test@equinix.com createdDateTime: 2022-05-12T17:53:45.401Z AsideServiceToken2PortResponseWithDot1q: value: @@ -27499,6 +29353,9 @@ components: uuid: f37e40c5-2802-4df7-9732-839a8a5868ce name: My-Metal2Aws-Connection bandwidth: 1000 + redundancy: + group: 3cbd354d-d147-4552-bfd0-78c559b4cc91 + priority: PRIMARY aSide: accessPoint: type: METAL_NETWORK @@ -27532,8 +29389,6 @@ components: - fabric1@gmail.com changeLog: createdBy: fabric - createdByEmail: fabric@gmail.com - createdByFullName: fabric createdDateTime: 2020-05-21T10:30:00Z Metal2Sp-Azure-Response: value: @@ -27552,12 +29407,8 @@ components: - eqxfabricamcrh@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-21T20:14:04.072Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-21T20:14:04.072Z bandwidth: 50 redundancy: @@ -27597,12 +29448,8 @@ components: - fabric@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-21T20:14:04.072Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-21T20:14:04.072Z bandwidth: 50 redundancy: @@ -27642,12 +29489,8 @@ components: - test@gmail.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com createdDateTime: 2024-03-19T23:09:15.547Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com updatedDateTime: 2024-03-19T23:09:15.547Z bandwidth: 50 redundancy: @@ -27688,12 +29531,8 @@ components: - dragons-qa3@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-06T17:20:41.574Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-06T17:20:41.574Z bandwidth: 50 redundancy: @@ -27734,12 +29573,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-20T00:39:07.648Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-20T00:39:07.648Z bandwidth: 50 redundancy: @@ -27781,12 +29616,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-21T23:44:22.347Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-21T23:44:22.347Z bandwidth: 50 redundancy: @@ -27829,12 +29660,8 @@ components: - test@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-20T20:12:08.595Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-20T20:12:08.595Z bandwidth: 50 redundancy: @@ -27881,12 +29708,8 @@ components: - test@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-03-22T00:42:35.386Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-03-22T00:42:35.386Z bandwidth: 1000 redundancy: @@ -27908,275 +29731,6 @@ components: type: L2_PROFILE name: Generic Service Profile uuid: f1a247aa-8f86-4a89-88c2-72497686cd0d - MCNS2Sp-Alibaba-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/974cb1c6-5090-4796-9d38-f5c14432d2c4 - type: EVPL_VC - uuid: 974cb1c6-5090-4796-9d38-f5c14432d2c4 - name: My-MCNS2Alibaba-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:35:23.750Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:35:23.750Z - bandwidth: 50 - redundancy: - group: 9d92f86f-2c2a-4b88-b9a1-a61ec83c28cf - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/4c4b8edf-873b-4c6c-805a-edb2c335bd6c - type: L2_PROFILE - name: Alibaba Cloud Express Connect - uuid: 4c4b8edf-873b-4c6c-805a-edb2c335bd6c - sellerRegion: us-east-1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-Aws-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/729a1248-afa5-4dee-a4e7-5f24cab53287 - type: EVPL_VC - uuid: 729a1248-afa5-4dee-a4e7-5f24cab53287 - name: My-MCNS2AWS-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-06T17:08:45.548Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-06T17:08:45.548Z - bandwidth: 50 - redundancy: - group: 75346f39-4193-466e-9a83-78c7e153f6e2 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/69ee618d-be52-468d-bc99-00566f2dd2b9 - type: L2_PROFILE - name: AWS Direct Connect - uuid: 69ee618d-be52-468d-bc99-00566f2dd2b9 - sellerRegion: us-east-1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-GCP-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/4c2c8739-f476-47ae-a0fa-f924e1081e62 - type: EVPL_VC - uuid: 4c2c8739-f476-47ae-a0fa-f924e1081e62 - name: My-MCNS2GCP-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-06T19:25:09.527Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-06T19:25:09.527Z - bandwidth: 50 - redundancy: - group: 33286a70-e0d5-466b-873e-f2c1836d1f0c - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/bd4570e2-d792-4a00-87f5-3bde040cdcd7 - type: L2_PROFILE - name: Google Cloud Partner Interconnect Zone 1 - uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 - sellerRegion: us-east1 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-IBM2-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/d9e3f826-71e4-40a5-9e27-6030d1498e13 - type: EVPL_VC - uuid: d9e3f826-71e4-40a5-9e27-6030d1498e13 - name: MY-MCNS2IBM2-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:23:43.711Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:23:43.711Z - bandwidth: 50 - redundancy: - group: f65c252c-ea74-4a12-87aa-7bc0236cb24a - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - type: L2_PROFILE - name: IBM Cloud Direct Link 2 - uuid: e092ed47-63d2-4f4a-87a0-82e3b08eefe5 - sellerRegion: Washington 2 - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-Azure-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/43504d46-f5ce-4d47-99f6-d220df13f81d - type: EVPL_VC - uuid: 43504d46-f5ce-4d47-99f6-d220df13f81d - name: My-MCNS2Azure-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T04:41:43.111Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T04:41:43.111Z - bandwidth: 50 - redundancy: - group: d88b8fe3-23ac-42b6-8c28-33d33f0b9760 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/a1390b22-bbe0-4e93-ad37-85beef9d254d - type: L2_PROFILE - name: Azure ExpressRoute - uuid: a1390b22-bbe0-4e93-ad37-85beef9d254d - authenticationKey: xxxx-xxx-xxxx - MCNS2Sp-OCI-Response: - value: - href: https://api.equinix.com/fabric/v4/connections/addae6f7-69c1-494e-905a-3d94b8cb8f1a - type: EVPL_VC - uuid: addae6f7-69c1-494e-905a-3d94b8cb8f1a - name: My-MCNS2OCI-Connection - operation: - providerStatus: PROVISIONING - equinixStatus: PROVISIONING - order: - billingTier: Up to 50 MB - notifications: - - type: ALL - emails: - - fabric@gmail.com - changeLog: - createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@gmail.com - createdDateTime: 2024-09-07T05:09:26.587Z - updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@gmail.com - updatedDateTime: 2024-09-07T05:09:26.587Z - bandwidth: 50 - redundancy: - group: 6620b2a3-d3d7-420b-a3a0-4b5ae8b0cd10 - priority: PRIMARY - aSide: - accessPoint: - type: VPIC_INTERFACE - vpicInterface: - uuid: cd67f685-41b0-1b07-6de0-0320a5c00abe - zSide: - accessPoint: - location: - metroHref: http://api.corp.equinix.com/fabric/v4/metros/DC - metroCode: DC - profile: - href: https://api.equinix.com/fabric/v4/serviceProfiles/60ef0382-cdaa-44e7-bd36-b803731816b8 - type: L2_PROFILE - name: Oracle Cloud Infrastructure FastConnect - uuid: 60ef0382-cdaa-44e7-bd36-b803731816b8 - sellerRegion: us-ashburn-1 - authenticationKey: xxxx-xxx-xxxx COLO2NETWORKwithDot1q-Response: value: href: https://api.equinix.com/fabric/v4/connections/f3dd7395-7196-45f4-9b6f-54094aa75f53 @@ -28195,12 +29749,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28209,7 +29759,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28249,12 +29799,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28263,7 +29809,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28302,12 +29848,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28316,7 +29858,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28355,12 +29897,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28369,7 +29907,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28407,12 +29945,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28421,7 +29955,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28462,12 +29996,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:51:07.675Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:51:07.675Z bandwidth: 50 redundancy: @@ -28476,7 +30006,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/DA + metroHref: https://api.equinix.com/fabric/v4/metros/DA metroCode: DA port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28516,12 +30046,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28530,7 +30056,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28570,12 +30096,8 @@ components: - fabric@test.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T03:07:17.587Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T03:07:17.587Z bandwidth: 50 redundancy: @@ -28584,7 +30106,7 @@ components: aSide: accessPoint: location: - metroHref: http://qa3api.corp.equinix.com/fabric/v4/metros/SP + metroHref: https://api.equinix.com/fabric/v4/metros/SP metroCode: SP port: href: https://api.equinix.com/fabric/v4/ports/9127bb72-5f4f-4517-be74-3af7ce612687 @@ -28622,12 +30144,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-30T20:19:44.279Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-30T20:19:44.279Z bandwidth: 50 redundancy: @@ -28671,12 +30189,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-23T02:12:20.334Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-23T02:12:20.334Z bandwidth: 50 redundancy: @@ -28722,12 +30236,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-27T00:32:21.879Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-27T00:32:21.879Z bandwidth: 50 redundancy: @@ -28773,12 +30283,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:30:24.632Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:30:24.632Z bandwidth: 100 redundancy: @@ -28823,12 +30329,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:40:40.676Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:40:40.677Z bandwidth: 1000 redundancy: @@ -28873,12 +30375,8 @@ components: - fabric@equinix.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinix.com createdDateTime: 2024-04-25T20:43:43.199Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinix.com updatedDateTime: 2024-04-25T20:43:43.199Z bandwidth: 50 redundancy: @@ -28924,12 +30422,8 @@ components: - fabric@equinx.com changeLog: createdBy: fabric - createdByFullName: fabric - createdByEmail: fabric@equinx.com createdDateTime: 2024-04-25T14:06:48.933Z updatedBy: fabric - updatedByFullName: fabric - updatedByEmail: fabric@equinx.com updatedDateTime: 2024-04-25T14:06:48.933Z bandwidth: 50 redundancy: @@ -28957,45 +30451,12 @@ components: uuid: bd4570e2-d792-4a00-87f5-3bde040cdcd7 sellerRegion: us-west2 authenticationKey: xxxx-xxxx/us-west2/1 - IXPublicPeeringConnectionResponse: + IXDedicatedPublicPeeringConnectionResponse: value: href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: IX_PUBLIC_VC - name: Connection-1-Public-Connection - operation: - providerStatus: AVAILABLE - equinixStatus: PROVISIONED - bandwidth: 100000 - aSide: - accessPoint: - type: COLO - port: - href: https://api.equinix.com/fabric/v4/ports/0f6bdb36-e130-4924-b038-ee1785fad166 - type: XF_PORT - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - linkProtocol: - type: UNTAGGED - zSide: - accessPoint: - type: SP - profile: - type: IX_PROFILE - uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 - name: IX Public Peering Profile - href: https://api.equinix.com/fabric/v4/serviceProfiles/0f6bdb36-e130-4924-b038-ee1785fad166 - notifications: - - type: ALL - emails: - - test@test.com - project: - projectId: 03ed2230-604a-494c-bca2-c042d38d80bc - IXPrivatePeeringConnectionResponse: - value: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: IX_PRIVATE_VC - name: Private-Connection-1 + type: IX_VC + name: Virtual-Connection-1 bandwidth: 100000 operation: providerStatus: NOT_AVAILABLE @@ -29005,20 +30466,20 @@ components: type: COLO port: href: https://api.equinix.com/fabric/v4/ports/99e83e59-fd26-4134-b1b3-4c5dea6924d6 - type: XF_PORT uuid: 99e83e59-fd26-4134-b1b3-4c5dea6924d6 + type: XF_PORT name: A-IX-Port linkProtocol: type: DOT1Q - vlanTag: 111 + vlanTag: 99 zSide: accessPoint: type: SP profile: - name: Private IX Profile + href: https://api.equinix.com/fabric/v4/serviceProfiles/0f6bdb36-e130-4924-b038-ee1785fad166 + uuid: 0f6bdb36-e130-4924-b038-ee1785fad166 type: IX_PROFILE - href: https://api.equinix.com/fabric/v4/serviceProfiles/c2b7557e-95dc-412d-8dff-abbcb242ccc2 - uuid: c2b7557e-95dc-412d-8dff-abbcb242ccc2 + name: Equinix Internet Exchange Peering Profile project: projectId: 03ed2230-604a-494c-bca2-c042d38d80bc notifications: @@ -29893,12 +31354,8 @@ components: - test@equinix.com changeLog: createdBy: test - createdByFullName: test test - createdByEmail: test@equinix.com createdDateTime: 2023-03-01T22:57:15.874Z updatedBy: test - updatedByFullName: test test - updatedByEmail: test@equinix.com updatedDateTime: 2023-03-01T22:57:15.874Z - href: https://api.equinix.com/fabric/v4/connections/d27746b9-6c1e-95cb-b0ee-6c2fdb4990ba type: EVPL_VC @@ -29950,12 +31407,8 @@ components: - test@equinix.com changeLog: createdBy: test - createdByFullName: test test - createdByEmail: test@equinix.com createdDateTime: 2023-03-01T22:57:15.918Z updatedBy: test - updatedByFullName: test test - updatedByEmail: test@equinix.com updatedDateTime: 2023-03-01T22:57:15.918Z ConnectionBulkMigrationRequest: value: @@ -30012,12 +31465,8 @@ components: changeLog: createdBy: testBuyer createdDateTime: 2021-12-02 07:17:41.663 - createdByFullName: testBuyer testBuyer - createdByEmail: testBuyer@equinix.com updatedBy: testBuyer updatedDateTime: 2021-12-02 07:17:41.663 - updatedByFullName: testBuyer testBuyer - updatedByEmail: testBuyer@equinix.com change: uuid: 2f395804-c197-4796-b7b3-359d5fa5d853 type: CONNECTION_UPDATE @@ -30433,12 +31882,8 @@ components: - testuser@equinix.com changeLog: createdBy: testuser - createdByFullName: testuser testuser - createdByEmail: testuser@equinix.com createdDateTime: 2025-09-10T12:26:12.344Z updatedBy: testuser - updatedByFullName: testuser testuser - updatedByEmail: testuser@equinix.com updatedDateTime: 2025-09-10T12:33:42.996Z bandwidth: 200 redundancy: @@ -30704,13 +32149,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -30733,13 +32174,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -30801,13 +32238,9 @@ components: uuid: 3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -30832,13 +32265,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_CREATION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -30984,13 +32413,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31015,13 +32440,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -31036,17 +32457,11 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_DELETION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z - deletedBy: abc@xyz.com - deletedByFullName: abc - deletedByEmail: abc@xyz.com + deletedBy: fabric deletedDateTime: 2021-10-30T07:21:39Z type: DIRECT directIpv4: @@ -31061,13 +32476,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_DELETION changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31113,13 +32524,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31140,13 +32547,9 @@ components: href: https://api.equinix.com/fabric/v4/connections/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170/routingProtocols/557400f8-d360-11e9-bb65-2a2ae2dbcce4/changes/3c9b8e7a2-f3b1-4576-a4a9-1366a63df170 type: ROUTING_PROTOCOL_UPDATE changelog: - createdBy: abc@xyz.com - createdByFullName: abc - createdByEmail: abc@xyz.com + createdBy: fabric createdDateTime: 2021-10-30T07:21:39Z - updatedBy: abc@xyz.com - updatedByFullName: abc - updatedByEmail: abc@xyz.com + updatedBy: fabric updatedDateTime: 2021-10-30T07:21:39Z type: BGP bgpIpv4: @@ -31171,12 +32574,8 @@ components: state: SUCCEEDED 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:35:00Z - href: https://api.equinix.com/fabric/v4/connections/81331c52-04c0-4656-a4a7-18c52669348f/routingProtocols/4d5ed98a-8dba-4651-a317-8ad0234dd157/actions/995ed98b-1db9-6653-c323-19d0234dd999 uuid: 995ed98b-1db9-6653-c323-19d0234dd999 @@ -31185,12 +32584,8 @@ components: state: FAILED changeLog: createdBy: testuser - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:20:00Z updatedBy: testuser - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser updatedDateTime: 2020-05-21T10:25:00Z BGPSoftClearInAndOutBoundIPv4: value: @@ -31219,8 +32614,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPHardResetIPv6Response: value: @@ -31231,8 +32624,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInAndOutBoundIPv4Response: value: @@ -31243,8 +32634,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInAndOutBoundIPv6Response: value: @@ -31255,8 +32644,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInBoundIPv4Response: value: @@ -31267,8 +32654,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPSoftClearInBoundIPv6Response: value: @@ -31279,8 +32664,6 @@ components: state: PENDING changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z BGPActionDataResponseExample: value: @@ -31291,12 +32674,8 @@ components: state: SUCCEEDED changeLog: createdBy: adminuser - createdByEmail: adminuser@equinix.com - createdByFullName: adminuser adminuser createdDateTime: 2020-05-21T10:30:00Z updatedBy: adminuser - updatedByEmail: adminuser@equinix.com - updatedByFullName: adminuser adminuser updatedDateTime: 2020-05-21T10:35:00Z RoutingProtocolGetChangeResponseExample: value: @@ -31415,238 +32794,363 @@ components: bfd: enabled: true interval: "100" - AllPeeringProtocolResponse: + ExchangeServiceCreateRequest: + value: + type: IX + name: ix_exchange_service + publicPeeringConnection: + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + description: ix_exchange_service + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + bgpIpv4: + domainName: gw01.sin.example.net + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5KEY12345 + prefixes: + - 203.0.113.0/24 + bgpIpv6: + domainName: gw01.sin.example.net + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5KEY123456 + prefixes: + - 2001:DB8:123::/48 + order: + purchaseOrderNumber: 1-3456576 + notifications: + - type: ALL + emails: + - test@test.com + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + ExchangeServiceResponse: value: - pagination: - offset: 0 - limit: 10 - total: 1 - data: - - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 - state: PROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 - changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - Peering_400: + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 + uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service + state: PROVISIONING + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334\ + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com + changelog: + createdBy: "12345" + createdDateTime: 2025-08-30T07:21:39Z + ExchangeService_400: value: - errorCode: EQ-3067103 - errorMessage: Peering Protocol does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId + errorMessage: Invalid request. Please verify the request payload. correlationId: cebc3d33-9037-4a2b-a7af-0ad65602cdec - details: Peering Protocol Service does not exist or does not belong to the user. Please check ConnectionID and PeeringProtocolId - Peering_401: + details: Invalid request. Please verify the request payload. + ExchangeService_401: value: - errorCode: EQ-3067106 errorMessage: User not found in request or invalid. correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - Peering_403: + ExchangeService_403: value: - errorCode: EQ-3067102 errorMessage: Operation not allowed correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Operation not allowed for current user - Peering_404: + ExchangeService_404: value: - errorCode: EQ-3067101 - errorMessage: Peering Protocol not found; it may not exist or could have already been deleted. + errorMessage: Exchange Service not found. correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 - details: Peering Protocol Service not found or already deleted - Peering_500: + details: Exchange Service not found. + ExchangeService_500: value: - errorCode: EQ-3067104 errorMessage: Internal Server Error correlationId: c82ff3bc-de07-47e5-b3ec-53a009d01515 details: Internal Server Error - PeeringProtocolCreateRequest: - value: - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - macAddress: 00:11:22:33:44:55 - bgpIpv4: - domainName: gw01.sin.example.net - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY12345 - prefixes: - - 203.0.113.0/24 - bgpIpv6: - domainName: gw01.sin.example.net - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY123456 - prefixes: - - 2001:DB8:123::/48 - PeeringProtocolResponse: - value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 - state: PROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 - changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - PeeringProtocolDeleteResponse: + ExchangeServiceDeleteResponse: value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service state: DEPROVISIONING - macAddress: 00:11:22:33:44:55 - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5KEY12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - rcMd5AuthKey: TESTMD5KEY123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z - PeeringProtocolPatchRequest: + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ExchangeServicePatchRequest: value: - op: replace path: /macAddress value: 00:1A:2B:3C:4D:5E - PeeringProtocolPatchResponse: + ExchangeServicePatchResponse: value: - href: https://api.equinix.com/fabric/v4/connections/e8ba52fe-faae-43b5-b0b1-6904d37ee011/peeringProtocols/a8ba52de-faae-43b5-b0b1-6904d37ee011 + href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 - type: BGP - name: ix_bgp - description: ix_bgp - customerAsn: 5555 - vlan: 99 - routeServerAsn: 24115 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service state: REPROVISIONING - macAddress: 00:1A:2B:3C:4D:5E - bgpIpv4: - customerPeerIp: 12.1.1.1 - domainName: gw01.sin.example.net - primaryRouteServerIp: 10.1.1.1 - secondaryRouteServerIp: 10.1.1.2 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key12345 - prefixes: - - 203.0.113.0/24 - maxPrefixLimit: 300 - prependSelfEnabled: true - bgpIpv6: - customerPeerIp: 2001:db8:c59b::22 - domainName: gw01.sin.example.net - primaryRouteServerIp: 2001:db8:c59b::33 - secondaryRouteServerIp: 2001:db8:c59b::322 - asSet: AS-EC-SV - mlpeEnabled: true - md5AuthKey: TESTMD5Key123456 - prefixes: - - 2001:DB8:123::/48 - maxPrefixLimit: 300 - prependSelfEnabled: true - routeCollector: - asn: 1238 - ipV4: 10.255.255.254 - ipV6: 2001:db8:85a3::8a2e:370:7334 + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com changelog: - createdBy: "12345" - createdDateTime: 2025-08-30T07:21:39Z + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ExchangeServiceSearchProjectId: + value: + filter: + and: + - property: /project/projectId + operator: = + values: + - 30ad25e2-53dc-11ed-bdc3-0242ac120002 + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + ExchangeServiceSearchResponse: + value: + pagination: + offset: 0 + limit: 10 + total: 1 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + data: + - href: https://api.equinix.com/fabric/v4/exchangeServices/a8ba52de-faae-43b5-b0b1-6904d37ee011 + uuid: a8ba52de-faae-43b5-b0b1-6904d37ee011 + type: IX + name: ix_exchange_service + bandwidth: 400000 + description: ix_exchange_service + state: PROVISIONING + location: + metroHref: https://api.equinix.com/fabric/v4/metros/SV + metroCode: SV + publicPeeringConnection: + type: IX_VC + href: https://api.equinix.com/fabric/v4/connections/b44c6e6c-2c36-4488-b3f1-47064357b5b4 + uuid: b44c6e6c-2c36-4488-b3f1-47064357b5b4 + routingProtocol: + customerAsn: 5555 + macAddress: 00:11:22:33:44:55 + vlan: 99 + routeServerAsn: 24115 + bgpIpv4: + customerPeerIp: 12.1.1.1 + domainName: gw01.sin.example.net + primaryRouteServerIp: 10.1.1.1 + secondaryRouteServerIp: 10.1.1.2 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key12345 + prefixes: + - 203.0.113.0/24 + maxPrefixLimit: 300 + prependSelfEnabled: true + bgpIpv6: + customerPeerIp: 2001:db8:c59b::22 + domainName: gw01.sin.example.net + primaryRouteServerIp: 2001:db8:c59b::33 + secondaryRouteServerIp: 2001:db8:c59b::322 + asSet: AS-EC-SV + mlpeEnabled: true + md5AuthKey: TESTMD5Key123456 + prefixes: + - 2001:DB8:123::/48 + maxPrefixLimit: 300 + prependSelfEnabled: true + routeCollector: + asn: 1238 + ipV4: 10.255.255.254 + ipV6: 2001:db8:85a3::8a2e:370:7334 + order: + purchaseOrderNumber: 126758 + orderNumber: 1-139105284200 + project: + projectId: e275485c-7072-439f-943a-c923548b2be5 + account: + accountNumber: 100179 + notifications: + - type: ALL + emails: + - test@test.com + changelog: + updatedBy: "12345" + updatedDateTime: 2025-08-30T07:21:39Z + ACTIVATE: + value: + type: ACTIVATE + VALIDATE: + value: + type: VALIDATE + ExchangeServiceActionResponse: + value: + href: https://api.equinix.com/fabric/v4/exchangeService/a8ba52de-faae-43b5-b0b1-6904d37ee011/actions/3a58dd05-f46d-4b1d-a154-2e85c396ea62 + type: ACTIVATE + uuid: 3a58dd05-f46d-4b1d-a154-2e85c396ea62 + state: SUCCEEDED + changeLog: + createdDateTime: 2026-02-10T11:30:00Z + createdBy: Alice ConnectionSearchDirection: value: filter: @@ -32934,6 +34438,42 @@ components: operator: = values: - CH3 + MetroConnectProduct: + value: + filter: + and: + - property: /type + operator: = + values: + - METRO_CONNECT_PRODUCT + - property: /account/accountNumber + operator: = + values: + - "200551" + - property: /metroConnect/type + operator: = + values: + - OPTICAL_MC + - property: /metroConnect/bandwidth + operator: = + values: + - "1000" + - property: /metroConnect/pathType + operator: = + values: + - PROTECTED + - property: /metroConnect/connectionDestinationType + operator: = + values: + - COLO + - property: /metroConnect/aSide/location/ibxCode + operator: = + values: + - CH1 + - property: /metroConnect/zSide/location/ibxCode + operator: = + values: + - CH3 VirtualConnection: value: pagination: @@ -33132,6 +34672,36 @@ components: location: metroCode: CH ibx: CH3 + MetroConnect: + value: + pagination: + offset: 0 + limit: 1 + total: 1 + data: + - type: METRO_CONNECT_PRODUCT + code: MC00007.PROD + name: Metro Connect Port Product + description: Metro Connect Port + account: + accountNumber: 200551 + charges: + - type: MONTHLY_RECURRING + price: 500 + - type: NON_RECURRING + price: 0 + currency: USD + metroConnect: + type: OPTICAL_MC + bandwidth: 1000 + pathType: PROTECTED + connectionDestinationType: COLO + aSide: + location: + ibxCode: CH1 + zSide: + location: + ibxCode: CH3 400_prices: value: - errorCode: EQ-3038010 @@ -34067,6 +35637,11 @@ components: path: /tags value: - sample_tag + ServiceProfilePatchRequestForVisibility: + value: + - op: replace + path: /visibility + value: PUBLIC ServiceProfilePatchResponse: value: state: ACTIVE @@ -34142,10 +35717,110 @@ components: ibxs: - SY4 displayName: Sydney - sp-412: + ServiceProfilePatchResponseForVisibility: + value: + state: ACTIVE + account: + orgId: 91785 + organizationName: testSeller-270010 + globalOrgId: 0016u000003JZ4tAAG + change: + href: fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f/actions/9b9f8a9b-4583-4649-9d91-a48494f822a7 + type: PROFILE_UPDATE_ACCEPTANCE + uuid: 9b9f8a9b-4583-4649-9d91-a48494f822a7 + comments: Approved to migrate to public + createdDateTime: 2026-02-17T17:23:35.543Z + data: + - op: replace + path: /visibility + value: PUBLIC + changeLog: + createdBy: fusiontestseller + createdByFullName: fusiontestSeller fusiontestSeller + createdByEmail: fusiontestSeller@equinix.com + createdDateTime: 2022-04-12T19:06:57.940Z + updatedDateTime: 2022-04-12T19:11:04.017Z + href: https://api.equinix.com/fabric/v4/serviceProfiles/ea4b5141-e4d2-49f1-9768-4ea6e215b37f + type: L2_PROFILE + name: Service Profile 2 + uuid: ea4b5141-e4d2-49f1-9768-4ea6e215b37f + description: Sample_description + notifications: + - type: BANDWIDTH_ALERT + emails: + - someone@sample.com + - type: CONNECTION_APPROVAL + emails: + - someone@sample.com + - type: PROFILE_LIFECYCLE + emails: + - someone@sample.com + visibility: PRIVATE + tags: + - sample_tag + allowedEmails: + - test@equinix.com + - testagain@equinix.com + accessPointTypeConfigs: + - type: COLO + uuid: f20c49cd-b022-4aeb-b3e4-49db4389aff3 + supportedBandwidths: + - 100 + - 500 + allowRemoteConnections: false + allowCustomBandwidth: true + bandwidthAlertThreshold: 10 + allowBandwidthAutoApproval: false + linkProtocolConfig: + encapsulationStrategy: CTAGED + reuseVlanSTag: false + encapsulation: DOT1Q + enableAutoGenerateServiceKey: false + connectionRedundancyRequired: false + selectiveRedundancy: false + apiConfig: + apiAvailable: false + equinixManagedPort: true + equinixManagedVlan: true + allowOverSubscription: false + overSubscriptionLimit: 1 + bandwidthFromApi: false + connectionLabel: true1 + authenticationKey: + required: false + label: Service Key + marketingInfo: + promotion: true + ports: + - type: XF_PORT + uuid: c791f8cb-5cc9-cc90-8ce0-306a5c00a4ee + location: + metroCode: SY + metros: + - code: SY + name: Sydney + ibxs: + - SY4 + displayName: Sydney + ServiceProfileActionRequest: + value: + type: PROFILE_UPDATE_ACCEPTANCE + description: Approved to migrate to public + ServiceProfileActionRejectionRequest: value: - - errorCode: EQ-3001205 - errorMessage: "If-Match : invalid Etag version" + type: PROFILE_UPDATE_REJECTION + description: Rejected the migration to public + ServiceProfileActionResponse: + value: + href: https://api.equinix.com/fabric/v4/serviceProfiles/f30a9de3-c79e-443e-b65d-0a0692c6f3e0/actions/ac2a3233-23d9-423c-b375-0e78717bd348 + type: PROFILE_UPDATE_ACCEPTANCE + uuid: ac2a3233-23d9-423c-b375-0e78717bd348 + comments: Approved to migrate to public + changeLog: + createdBy: adminuser + createdDateTime: 2026-03-04T10:30:00Z + updatedBy: adminuser + updatedDateTime: 2026-03-04T10:35:00Z getServiceToken: value: href: http://api.equinix.com/fabric/v4/serviceTokens/13ab7dc7-c18e-4f73-aa35-fc3a83966e79 @@ -34951,35 +36626,22 @@ components: - 407f8239-254c-4fe2-a378-458f197e17c4 ColoMetroConnectCreate: value: - type: FABRIC_MC - bandwidth: 10000 + type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: null + patchPanelPortB: null + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -34988,29 +36650,55 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com RemoteMetroConnectCreate: value: - type: FABRIC_MC - bandwidth: 10000 + type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + BMMRMetroConnectCreate: + value: + type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + aSide: + patchPanelId: PP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + bmmrType: EQUINIX order: purchaseOrderNumber: 156576 - signature: - signatory: SELF project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35019,60 +36707,39 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com ColoMetroConnectResponseExample: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV2:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35081,6 +36748,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35090,49 +36759,29 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: SELF project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35141,6 +36790,51 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com + changeLog: + createdByEmail: abc@xyz.com + createdDateTime: 2025-07-24T06:50:46Z + updatedByEmail: abc@xyz.com + updatedDateTime: 2025-07-24T06:51:46Z + BMMRMetroConnectResponseExample: + value: + href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-01 + state: PROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + bmmrType: EQUINIX + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35149,231 +36843,245 @@ components: ColoMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com RemoteMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - ColoMetroConnectBulkCreateWithOrder: + notifications: + - type: ALL + emails: + - test@test.com + BMMRMetroConnectBulkCreate: value: data: - - type: FABRIC_MC - bandwidth: 10000 + - type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: PRIMARY + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: SECONDARY + aSide: + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + zSide: + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + ColoMetroConnectBulkCreateWithPurchaseOrder: + value: + data: + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 - - type: FABRIC_MC - bandwidth: 10000 + notifications: + - type: ALL + emails: + - test@test.com + - type: OPTICAL_MC + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC order: purchaseOrderNumber: 156576 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com ColoMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - type: XF_PORT - uuid: b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: orderNumber: 1-129105284100 project: @@ -35384,57 +37092,37 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/a6f77b33-96c6-4eeb-8d79-76374d950603 uuid: a6f77b33-96c6-4eeb-8d79-76374d950603 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 - type: MC_VC - uuid: f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - type: XF_PORT - uuid: e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - type: XF_PORT - uuid: a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: orderNumber: 1-129105284100 project: @@ -35445,57 +37133,36 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com RemoteMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e2a4c1b7-8d5f-4e2a-9c1a-7f6b2e8d9a12 - type: XF_PORT - uuid: e2a4c1b7-8d5f-4e2a-9c1a-7f6b2e8d9a12 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: orderNumber: 1-129105284100 project: @@ -35506,54 +37173,33 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 uuid: c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f3a6b2d8-1e4c-4b7a-9c2e-8d5f6a1b3e79 - type: MC_VC - uuid: f3a6b2d8-1e4c-4b7a-9c2e-8d5f6a1b3e79 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/a3a6b2d8-2e4c-4b7a-9c2e-8d5f6a1b3e80 - type: XF_PORT - uuid: a3a6b2d8-2e4c-4b7a-9c2e-8d5f6a1b3e80 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: c8f1a2b3-4d5e-6f70-8a91-2b3c4d5e6f70 - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/c1e7b2a4-5d8f-4e2a-9c1a-7f6b2e8d9a11 - type: XF_PORT - uuid: c1e7b2a4-5d8f-4e2a-9c1a-7f6b2e8d9a11 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 order: orderNumber: 1-129105284100 project: @@ -35564,69 +37210,122 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z - ColoMetroConnectBulkResponseWithOrderExample: + registeredUsers: + - test@test.com + BMMRMetroConnectBulkResponseExample: value: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: PRIMARY + group: 22f8e668-4754-4564-825d-d1c7889c885a + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + - href: https://api.equinix.com/fabric/v4/metroConnects/c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 + uuid: c9e2a1b6-7d4f-4c3e-8b2a-5f1d6e7a9c58 + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 + state: PROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: DUAL_DIVERSE + bmmrType: EQUINIX + redundancy: + priority: SECONDARY + group: 22f8e668-4754-4564-825d-d1c7889c885a + aSide: + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: e9e2a1b6-8d4f-4c3e-8b2a-5f1d6e7a9c59 + order: + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + ColoMetroConnectBulkResponseWithPurchaseOrderExample: + value: + data: + - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-PRI-01 + state: PROVISIONING + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: PRIMARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - type: XF_PORT - uuid: b7e2c8a1-4f3a-4c2e-9e7b-2a6d8f1c3e5f - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35635,66 +37334,40 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com - href: https://api.equinix.com/fabric/v4/metroConnects/a6f77b33-96c6-4eeb-8d79-76374d950603 uuid: a6f77b33-96c6-4eeb-8d79-76374d950603 - type: FABRIC_MC - name: My-FMC-Service + type: OPTICAL_MC + name: 270848-SV1-SV2-SEC-02 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO + pathType: DUAL_DIVERSE redundancy: priority: SECONDARY group: 22f8e668-4754-4564-825d-d1c7889c885a - connection: - href: https://api.equinix.com/fabric/v4/connections/f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 - type: MC_VC - uuid: f1a2b3c4-5d6e-7f80-9a01-2b3c4d5e6f71 aSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV1:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - type: XF_PORT - uuid: e4f5c2b7-8a3d-4c1e-b2f6-1d9e7a6c3b21 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: PP:Demarc:1260379 - portA: "14" - portB: "15" - connectorType: SC - cageUniqueSpaceId: SV2:02:032575 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - type: XF_PORT - uuid: a7d8c3e2-5b4f-4a1c-8e9d-2c6b7f8a1e34 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: PP:Demarc:1260379 + patchPanelPortA: "14" + patchPanelPortB: "15" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35703,11 +37376,8 @@ components: - type: ALL emails: - test@test.com - changeLog: - createdByEmail: abc@xyz.com - createdDateTime: 2025-07-24T06:50:46Z - updatedByEmail: abc@xyz.com - updatedDateTime: 2025-07-24T06:51:46Z + registeredUsers: + - test@test.com MetroConnect_400: value: - errorCode: EQ-3057103 @@ -35736,56 +37406,33 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC + type: OPTICAL_MC name: 270848-SV1-SV2-01 state: DEPROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35794,6 +37441,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35803,53 +37452,67 @@ components: value: href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC + type: OPTICAL_MC name: 270848-SV1-SV2-01 state: DEPROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: REMOTE - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 + pathType: UNPROTECTED aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - ibx: SV2 - loas: - - uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e - type: DIGITAL_LOA - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e + order: + purchaseOrderNumber: 156576 + orderNumber: 1-129105284100 + project: + projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 + account: + accountNumber: 270848 + notifications: + - type: ALL + emails: + - test@test.com + registeredUsers: + - test@test.com + BMMRMetroConnectResponseDeprovisioningExample: + value: + href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 + uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 + type: OPTICAL_MC + name: 270848-SV1-SV2-01 + state: DEPROVISIONING + bandwidth: 100000 + connectionDestinationType: BMMR + pathType: UNPROTECTED + bmmrType: EQUINIX + aSide: + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 + zSide: + location: + ibxCode: SV2 + loa: + uuid: 64de7e5-7fe7-41e6-b984-80d5aa159a0e order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35858,6 +37521,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35888,11 +37553,11 @@ components: - property: /name operator: = values: - - my-fmc-service + - 270848-SV1-SV2-01 - property: /type operator: = values: - - FABRIC_MC + - OPTICAL_MC - property: /project/projectId operator: = values: @@ -35931,56 +37596,32 @@ components: data: - href: https://api.equinix.com/fabric/v4/metroConnects/06dbb0e3-e55d-4090-8aff-fc5654abaad0 uuid: 06dbb0e3-e55d-4090-8aff-fc5654abaad0 - type: FABRIC_MC - name: My-FMC-Service-1 + type: OPTICAL_MC + name: 270848-SV1-SV2-01-1 state: PROVISIONING - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/a8ba52de-faae-43b5-b0b1-6904d37ee063 - type: MC_VC - uuid: a8ba52de-faae-43b5-b0b1-6904d37ee063 aSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - type: XF_PORT - uuid: d4e5f6a7-2b3c-4d5e-8f91-1a2b3c4d5e67 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1259684 - portA: "10" - portB: "11" - connectorType: SC - cageUniqueSpaceId: SV2:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/b8ba52de-faae-43b5-b0b1-6904d37ee063 - type: XF_PORT - uuid: b8ba52de-faae-43b5-b0b1-6904d37ee063 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + connectorType: SC + location: + ibxCode: SV2 order: purchaseOrderNumber: 156576 orderNumber: 1-129105284100 - signature: - signatory: DELEGATE - delegate: - firstName: John - lastName: Doe - email: john.doe@company.com project: projectId: 8f23b36f-db8f-44c8-a6e5-606e1b485931 account: @@ -35989,6 +37630,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2025-07-24T06:50:46Z @@ -35996,56 +37639,32 @@ components: updatedDateTime: 2025-07-24T06:51:46Z - href: https://api.equinix.com/fabric/v4/metroConnects/07abb0e3-e67d-5090-9aff-fc5654abaae0 uuid: 07abb0e3-e67d-5090-9aff-fc5654abaae0 - type: FABRIC_MC - name: My-FMC-Service-2 + type: OPTICAL_MC + name: 270848-SV1-SV2-01-2 state: PROVISIONED - bandwidth: 10000 + bandwidth: 100000 connectionDestinationType: COLO - connection: - href: https://api.equinix.com/fabric/v4/connections/c4d93b39-02db-2dbc-ace0-30fa5c00ad04 - type: MC_VC - uuid: c4d93b39-02db-2dbc-ace0-30fa5c00ad04 aSide: - patchPanel: - id: CP:Demarc:1234685 - portA: "11" - portB: "12" - connectorType: SC - cageUniqueSpaceId: SV1:01:002174 - cabinetUniqueSpaceId: Demarc - ibx: SV1 - port: - href: https://api.equinix.com/fabric/v4/ports/6f0f3015-2d51-4b6e-a98c-1defb4fe88f1 - type: XF_PORT - uuid: 6f0f3015-2d51-4b6e-a98c-1defb4fe88f1 - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1234685 + patchPanelPortA: "11" + patchPanelPortB: "12" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV1 zSide: - patchPanel: - id: CP:Demarc:1359684 - portA: "11" - portB: "12" - connectorType: SC - cageUniqueSpaceId: SV2:01:001285 - cabinetUniqueSpaceId: Demarc - ibx: SV2 - port: - href: https://api.equinix.com/fabric/v4/ports/116d431c-5cac-4171-b41b-ea9d801672bf - type: XF_PORT - uuid: 116d431c-5cac-4171-b41b-ea9d801672bf - location: - metroHref: https://api.equinix.com/fabric/v4/metros/SV - metroCode: SV + patchPanelId: CP:Demarc:1259684 + patchPanelPortA: "10" + patchPanelPortB: "11" + connectorType: SC + cageUniqueSpaceId: SV1:01:002174 + cabinetUniqueSpaceId: Demarc + location: + ibxCode: SV2 order: purchaseOrderNumber: 126758 orderNumber: 1-139105284200 - signature: - signatory: DELEGATE - delegate: - firstName: Tom - lastName: Lim - email: tom.lim@company.com project: projectId: 66a2d2f7-b79b-49bc-8642-d2b3c1c138b4 account: @@ -36054,6 +37673,8 @@ components: - type: ALL emails: - test@test.com + registeredUsers: + - test@test.com changeLog: createdByEmail: abc@xyz.com createdDateTime: 2024-07-24T06:50:46Z @@ -37047,6 +38668,92 @@ components: - type: ESCALATION registeredUsers: - jaguarsuser-port-order + bmmrSinglePortCreateDryRunResponse: + value: + type: XF_PORT + connectivitySourceType: BMMR + physicalPortsSpeed: 1000 + physicalPortsType: 1000BASE_LX + physicalPortsCount: 1 + location: + metroCode: AT + demarcationPointIbx: AT1 + redundancy: + priority: PRIMARY + lagEnabled: false + encapsulation: + type: DOT1Q + tagProtocolId: 33024 + package: + code: STANDARD + project: + projectId: b7c8d9e0-f1a2-4b3c-9d4e-5f6a7b8c9d0e + account: + accountNumber: 100001 + accountName: Test-Account + order: + purchaseOrder: + number: Fabric-PO-TEST-001 + amount: "1000" + startDate: 2025-01-01 + endDate: 2030-01-01 + type: EXISTING + signature: + signatory: SELF + delegate: + email: test-user@example.com + notifications: + - type: TECHNICAL + registeredUsers: + - test-technical-user + - type: NOTIFICATION + registeredUsers: + - test-notification-user + loas: + - uuid: a0b1c2d3-e4f5-4678-a6b7-c8d9e0f1a2b3 + remoteSinglePortCreateDryRunResponse: + value: + type: XF_PORT + connectivitySourceType: REMOTE + physicalPortsSpeed: 1000 + physicalPortsType: 1000BASE_LX + physicalPortsCount: 1 + location: + metroCode: AT + demarcationPointIbx: AT1 + redundancy: + priority: PRIMARY + lagEnabled: false + encapsulation: + type: DOT1Q + tagProtocolId: 33024 + package: + code: STANDARD + project: + projectId: e3d4f5a6-7b8c-4d9e-a0b1-c2d3e4f56789 + account: + accountNumber: 100002 + accountName: Test-Account + order: + purchaseOrder: + number: Fabric-PO-TEST-002 + amount: "1000" + startDate: 2025-01-01 + endDate: 2030-01-01 + type: EXISTING + signature: + signatory: SELF + delegate: + email: test-user@example.com + notifications: + - type: TECHNICAL + registeredUsers: + - test-technical-user + - type: NOTIFICATION + registeredUsers: + - test-notification-user + loas: + - uuid: f1e2d3c4-b5a6-4978-8e0f-1a2b3c4d5e6f coloSinglePortNonLagResponse: value: href: https://api.equinix.com/fabric/v4/ports/11abfba0-907f-460b-95ff-5a7bda4471ed @@ -37101,9 +38808,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37156,8 +38860,6 @@ components: additionalInfo: - key: lagType value: New - - key: quoteReferenceId - value: ee38d4b9-8264-4824-b829-659b72d50b4f remoteSinglePortLagResponse: value: href: https://api.equinix.com/fabric/v4/ports/68adcd26-d66c-489d-9c72-8990b92a288e @@ -37206,8 +38908,6 @@ components: additionalInfo: - key: lagType value: New - - key: quoteReferenceId - value: ee38d4b9-8264-4824-b829-659b72d50b4f remoteSinglePortLagWithPurchaseOrderExemption: value: type: XF_PORT @@ -37288,9 +38988,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37338,9 +39035,6 @@ components: - type: NOTIFICATION registeredUsers: - jaguars-test-user-001 - additionalInfo: - - key: quoteReferenceId - value: 45954c0c-29ee-43ac-9013-adc2aab9f509 physicalPorts: - demarcationPoint: ibx: GV1 @@ -37398,15 +39092,6 @@ components: - 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 @@ -37606,8 +39291,6 @@ components: loas: - uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98 additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" bmmrType: EQUINIX @@ -37644,8 +39327,6 @@ components: loas: - uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98 additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" bmmrType: EQUINIX @@ -37693,8 +39374,6 @@ components: project: projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1 additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" order: @@ -37739,8 +39418,6 @@ components: project: projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1 additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" order: @@ -37861,8 +39538,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" - href: https://api.equinix.com/fabric/v4/ports/57eb2e60-d16a-40ad-8395-6e083ce0d631 @@ -37907,8 +39582,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: fed85cbf-a32f-433f-a109-60e767d599f6 - key: InterfaceReferenceId value: "906234" remoteBulkPortResponse: @@ -37957,8 +39630,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" - href: https://api.equinix.com/fabric/v4/ports/44cea0ee-1a05-4347-a39b-c11dfde4b591 @@ -38004,8 +39675,6 @@ components: registeredUsers: - falconsExternalUser@seller.com additionalInfo: - - key: quoteReferenceId - value: 82da30e9-6cef-45c3-b772-f657fadb88d2 - key: InterfaceReferenceId value: "261376" coloAddToLag: @@ -38940,8 +40609,6 @@ components: 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 @@ -38990,8 +40657,6 @@ components: 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 @@ -39262,8 +40927,8 @@ components: offset: 1 limit: 2 total: 10 - next: /routeFilters?offset=3&limit=2 - previous: /routeFilters?offset=0&limit=2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 data: - href: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d type: BGP_IPv4_PREFIX_FILTER @@ -39673,6 +41338,102 @@ components: createdByEmail: testuser@equinix.com createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:30:00Z + SearchRouteFilterRulesAndRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER_RULE + - property: /state + operator: = + values: + - PROVISIONED + - or: + - property: /name + operator: LIKE + values: + - "%Demo%" + - property: /name + operator: LIKE + values: + - "%Production%" + - or: + - property: /state + operator: = + values: + - PROVISIONED + - and: + - property: /prefix + operator: = + values: + - 192.168.2.0/24 + - property: /prefixMatch + operator: = + values: + - exact + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteFilterRulesOrRequest: + value: + filter: + or: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER_RULE + - property: /state + operator: = + values: + - PROVISIONED + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteFilterRulesResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/search?offset=3&limit=2 + previous: https://api.equinix.com/fabric/v4/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeFilterRules/search?offset=0&limit=2 + 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: Route_Filter_Rule_Demo1 + description: Test rule1 + prefixMatch: exact + action: PERMIT + prefix: 192.168.10.0/24 + state: PROVISIONED + 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: Route_Filter_Rule_Demo2 + description: Test rule2 + prefixMatch: orlonger + action: PERMIT + prefix: 192.168.20.0/24 + state: PROVISIONED + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z RouteAggregationCreateBgpIpv4Prefix: value: type: BGP_IPv4_PREFIX_AGGREGATION @@ -39862,8 +41623,8 @@ components: offset: 1 limit: 2 total: 10 - next: /routeAggregations?offset=3&limit=2 - previous: /routeAggregations?offset=0&limit=2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 data: - href: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d type: BGP_IPv4_PREFIX_AGGREGATION @@ -40118,6 +41879,89 @@ components: createdByEmail: testuser@equinix.com createdByFullName: testuser testuser createdDateTime: 2020-05-21T10:30:00Z + SearchRouteAggregationRulesAndRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION_RULE + - property: /state + operator: = + values: + - PROVISIONED + - or: + - property: /name + operator: LIKE + values: + - "%Demo%" + - property: /name + operator: LIKE + values: + - "%Production%" + - or: + - property: /prefix + operator: = + values: + - 192.168.2.0/24 + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteAggregationRulesOrRequest: + value: + filter: + or: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION_RULE + - property: /state + operator: = + values: + - PROVISIONED + pagination: + offset: 0 + limit: 20 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + SearchRouteAggregationRulesResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/search?offset=3&limit=2 + previous: https://api.equinix.com/fabric/v4/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d/routeAggregationRules/search?offset=0&limit=2 + 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: Route_Aggregation_Rule_Demo1 + description: Test rule1 + prefix: 192.168.10.0/24 + state: PROVISIONED + 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: Route_Aggregation_Rule_Demo2 + description: Test rule2 + prefix: 192.168.20.0/24 + state: PROVISIONED + changeLog: + createdBy: testuser + createdByEmail: testuser@equinix.com + createdByFullName: testuser testuser + createdDateTime: 2020-05-21T10:30:00Z CreateLabPackage: value: type: XF_ROUTER @@ -40441,13 +42285,47 @@ components: deletedByFullName: abc deletedByEmail: abc@xyz.com deletedDateTime: 2021-09-24T06:59:46Z - CloudRouterActionResponse: + CloudRouterActionSearchResponse: value: - type: ROUTE_TABLE_ENTRY_UPDATE - uuid: 37c10edc-ba2e-4240-a850-8a48f9c47d00 - state: PENDING - changeLog: - createdDateTime: 2020-05-21T10:30:00Z + pagination: + offset: 0 + limit: 1 + total: 2 + prev: null + next: null + data: + - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 + uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 + type: RECEIVED_ROUTE_ENTRY_UPDATE + state: SUCCEEDED + connection: + href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 + uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 + type: IP_VC + operation: + bgpIpv4RoutesCount: 6 + bgpIpv6RoutesCount: 6 + distinctIpv4PrefixesCount: 4 + distinctIpv6PrefixesCount: 4 + changeLog: + createdDateTime: 2024-01-01T01:00:00Z + updatedDateTime: 2024-01-01T01:01:00Z + - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 + uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 + type: ROUTE_TABLE_ENTRY_UPDATE + state: SUCCEEDED + router: + href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 + uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 + type: XF_ROUTER + operation: + bgpIpv4RoutesCount: 6 + bgpIpv6RoutesCount: 6 + distinctIpv4PrefixesCount: 4 + distinctIpv6PrefixesCount: 4 + changeLog: + createdDateTime: 2024-01-01T01:00:00Z + updatedDateTime: 2024-01-01T01:01:00Z RouteEntriesStatusUpdate: value: type: ROUTE_TABLE_ENTRY_UPDATE @@ -40461,6 +42339,13 @@ components: type: ADVERTISED_ROUTE_ENTRY_UPDATE connection: uuid: 557400f8-d360-11e9-bb65-2a2ae2dbcce4 + CloudRouterActionResponse: + value: + type: ROUTE_TABLE_ENTRY_UPDATE + uuid: 37c10edc-ba2e-4240-a850-8a48f9c47d00 + state: PENDING + changeLog: + createdDateTime: 2020-05-21T10:30:00Z CloudRouterReceivedRoutesActionResponse: value: type: RECEIVED_ROUTE_ENTRY_UPDATE @@ -40493,47 +42378,6 @@ components: sort: - direction: DESC property: /changeLog/createdDateTime - CloudRouterActionSearchResponse: - value: - pagination: - offset: 0 - limit: 1 - total: 2 - prev: null - next: null - data: - - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 - uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 - type: RECEIVED_ROUTE_ENTRY_UPDATE - state: SUCCEEDED - connection: - href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 - uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 - type: IP_VC - operation: - bgpIpv4RoutesCount: 6 - bgpIpv6RoutesCount: 6 - distinctIpv4PrefixesCount: 4 - distinctIpv6PrefixesCount: 4 - changeLog: - createdDateTime: 2024-01-01T01:00:00Z - updatedDateTime: 2024-01-01T01:01:00Z - - href: https://api.equinix.com//fabric/v4/routers/a1c6b7fd-aead-410a-96b4-b1dfa1071700/actions/1e9414f1-763e-4c0a-86c6-0bc8336048d9 - uuid: 1e9414f1-763e-4c0a-86c6-0bc8336048d9 - type: ROUTE_TABLE_ENTRY_UPDATE - state: SUCCEEDED - router: - href: https://api.equinix.com/fabric/v4/connections/3066ab1d-af87-49d7-8a14-c9bdb57ac809 - uuid: 3066ab1d-af87-49d7-8a14-c9bdb57ac809 - type: XF_ROUTER - operation: - bgpIpv4RoutesCount: 6 - bgpIpv6RoutesCount: 6 - distinctIpv4PrefixesCount: 4 - distinctIpv6PrefixesCount: 4 - changeLog: - createdDateTime: 2024-01-01T01:00:00Z - updatedDateTime: 2024-01-01T01:01:00Z 400_invalid_sorting: value: - errorCode: EQ-3043015 @@ -41100,6 +42944,94 @@ components: deletedByEmail: testuser@equinix.com deletedByFullName: testuser testuser deletedDateTime: 2020-05-21T10:30:00Z + CloudRouterSearchRouteFiltersRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_FILTER + - property: /direction + operator: = + values: + - INBOUND + - property: /attachmentStatus + operator: = + values: + - ATTACHED + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + CloudRouterSearchRouteFiltersResponse: + value: + pagination: + offset: 0 + limit: 20 + total: 2 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 + data: + - href: https://api.equinix.com/fabric/v4/connections/57f82f8c-d899-4a21-93ae-5cfe33c50556/routeFilters/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_FILTER + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + direction: INBOUND + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/connections/500589e0-4196-4839-8d43-a0c073b4d747/routeFilters/4ed45b37-2b26-49de-ab35-4ad039586c7a + type: BGP_IPv4_PREFIX_FILTER + uuid: 4ed45b37-2b26-49de-ab35-4ad039586c7a + direction: INBOUND + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + CloudRouterSearchRouteAggregationsRequest: + value: + filter: + and: + - property: /type + operator: = + values: + - BGP_IPv4_PREFIX_AGGREGATION + - property: /attachmentStatus + operator: = + values: + - ATTACHED + pagination: + limit: 25 + offset: 0 + sort: + - property: /changeLog/updatedDateTime + direction: DESC + CloudRouterSearchRouteAggregationsResponse: + value: + pagination: + offset: 1 + limit: 2 + total: 10 + next: /search?offset=3&limit=2 + previous: /search?offset=0&limit=2 + data: + - href: https://api.equinix.com/fabric/v4/connections/57f82f8c-d899-4a21-93ae-5cfe33c50556/routeAggregations/695a8471-6595-4ac6-a2f4-b3d96ed3a59d + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 695a8471-6595-4ac6-a2f4-b3d96ed3a59d + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z + - href: https://api.equinix.com/fabric/v4/connections/500589e0-4196-4839-8d43-a0c073b4d747/routeAggregations/4ed45b37-2b26-49de-ab35-4ad039586c7a + type: BGP_IPv4_PREFIX_AGGREGATION + uuid: 4ed45b37-2b26-49de-ab35-4ad039586c7a + attachmentStatus: ATTACHED + changeLog: + createdBy: testuser + createdDateTime: 2020-05-21T10:30:00Z SearchFilterByNameAndMetroName: value: filter: @@ -41981,8 +43913,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:37:29.326Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0633e83f-116f-481d-b86f-c472271d1a8c/connections @@ -42019,8 +43949,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:21:43.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/884254b7-237d-44f7-af0f-84ba324350ef/connections @@ -42055,8 +43983,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:43:20.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/726af704-0b1b-46dc-9efc-00fc938084b3/connections @@ -42091,8 +44017,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T20:52:23.469Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0d51722e-b080-4943-92ab-9720eaab2cfa/connections @@ -42129,8 +44053,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T19:21:43.145Z links: href: http://api.corp.equinix.com/fabric/v4/networks/884254b7-237d-44f7-af0f-84ba324350ef/connections @@ -42165,8 +44087,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@gmail.com createdDateTime: 2025-03-03T20:55:57.858Z links: href: http://api.corp.equinix.com/fabric/v4/networks/82402fc0-cb55-4a21-b0b3-1af89f63742b/connections @@ -42201,8 +44121,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.comm createdDateTime: 2025-03-05T21:17:46.656Z links: href: http://api.corp.equinix.com/fabric/v4/networks/07659346-9489-42cf-891a-683624e801d5/connections @@ -42239,8 +44157,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T20:57:07.206Z links: href: http://api.corp.equinix.com/fabric/v4/networks/0ec08139-bae5-44c4-bea2-970b14d7c7c0/connections @@ -42275,8 +44191,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T21:22:30.984Z links: href: http://api.corp.equinix.com/fabric/v4/networks/4622cce8-114b-4432-94f4-060fda044ae3/connections @@ -42311,8 +44225,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-05T21:37:08.370Z links: href: http://api.corp.equinix.com/fabric/v4/networks/16ee541c-9e93-428b-9557-3f99907aa21c/connections @@ -42349,8 +44261,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-06T00:23:29.030Z links: href: http://api.corp.equinix.com/fabric/v4/networks/291fc758-91d3-482b-a9b3-3430685c390e/connections @@ -42385,8 +44295,6 @@ components: equinixStatus: PROVISIONING changeLog: createdBy: fabric - createdByFullName: fabric fabric - createdByEmail: fabric@equinix.com createdDateTime: 2025-03-06T00:30:42.972Z links: href: http://api.corp.equinix.com/fabric/v4/networks/c929924e-5d87-46b2-a82f-91a145c1803d/connections @@ -42426,12 +44334,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser NetworkGetResponseExample: value: href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784 @@ -42454,12 +44358,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid @@ -42491,16 +44391,10 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser1 updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser deletedBy: testuser1 deletedDateTime: 2020-05-21T10:30:00Z - deletedByEmail: testuser@equinix.com - deletedByFullName: testuser testuser UpdateNetworkName: value: - op: replace @@ -42541,12 +44435,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid @@ -42581,12 +44471,8 @@ components: changeLog: createdBy: testuser createdDateTime: 2020-05-21T10:30:00Z - createdByEmail: testuser@equinix.com - createdByFullName: testuser testuser updatedBy: testuser1 updatedDateTime: 2020-05-21T10:30:00Z - updatedByEmail: testuser@equinix.com - updatedByFullName: testuser testuser links: - href: https://api.equinix.com/fabric/v4/networks/92dc376a-a932-43aa-a6a2-c806dedbd784/connections rel: getConnectionsByNetworkUuid