diff --git a/README.md b/README.md
index 437e70da..aa94cad4 100644
--- a/README.md
+++ b/README.md
@@ -29,4 +29,4 @@ from equinix.services import metalv1
## Usage
-You can see usage of the generated code in the [`examples` directory](https://github.com/equinix/equinix-sdk-python/tree/main/examples).
+You can see usage of the generated code in the [`examples` directory](https://github.com/equinix/equinix-sdk-python/tree/main/examples)
diff --git a/equinix/services/fabricv4/__init__.py b/equinix/services/fabricv4/__init__.py
index 044fe338..e50b16a5 100644
--- a/equinix/services/fabricv4/__init__.py
+++ b/equinix/services/fabricv4/__init__.py
@@ -13,6 +13,8 @@
__version__ = "0.15.0"
# import apis into sdk package
+from equinix.services.fabricv4.api.agent_templates_api import AgentTemplatesApi
+from equinix.services.fabricv4.api.agents_api import AgentsApi
from equinix.services.fabricv4.api.cloud_events_api import CloudEventsApi
from equinix.services.fabricv4.api.cloud_routers_api import CloudRoutersApi
from equinix.services.fabricv4.api.company_profiles_api import CompanyProfilesApi
@@ -59,6 +61,19 @@
from equinix.services.fabricv4.models.access_point_type import AccessPointType
from equinix.services.fabricv4.models.actions import Actions
from equinix.services.fabricv4.models.add_operation import AddOperation
+from equinix.services.fabricv4.models.agent import Agent
+from equinix.services.fabricv4.models.agent_activities import AgentActivities
+from equinix.services.fabricv4.models.agent_activities_metadata import AgentActivitiesMetadata
+from equinix.services.fabricv4.models.agent_definition import AgentDefinition
+from equinix.services.fabricv4.models.agent_get_activities import AgentGetActivities
+from equinix.services.fabricv4.models.agent_get_all_response import AgentGetAllResponse
+from equinix.services.fabricv4.models.agent_patch_request import AgentPatchRequest
+from equinix.services.fabricv4.models.agent_post_request import AgentPostRequest
+from equinix.services.fabricv4.models.agent_template import AgentTemplate
+from equinix.services.fabricv4.models.agent_template_get_all_response import AgentTemplateGetAllResponse
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+from equinix.services.fabricv4.models.agent_templates_state import AgentTemplatesState
+from equinix.services.fabricv4.models.agents import Agents
from equinix.services.fabricv4.models.alert_rule_post_request import AlertRulePostRequest
from equinix.services.fabricv4.models.alert_rule_post_request_type import AlertRulePostRequestType
from equinix.services.fabricv4.models.alert_rule_put_request import AlertRulePutRequest
@@ -90,9 +105,9 @@
from equinix.services.fabricv4.models.bulk_physical_port import BulkPhysicalPort
from equinix.services.fabricv4.models.bulk_port_request import BulkPortRequest
from equinix.services.fabricv4.models.change import Change
-from equinix.services.fabricv4.models.change_status import ChangeStatus
from equinix.services.fabricv4.models.change_type import ChangeType
from equinix.services.fabricv4.models.changelog import Changelog
+from equinix.services.fabricv4.models.chat_message import ChatMessage
from equinix.services.fabricv4.models.cloud_event import CloudEvent
from equinix.services.fabricv4.models.cloud_event_asset_type import CloudEventAssetType
from equinix.services.fabricv4.models.cloud_event_data import CloudEventData
@@ -147,6 +162,22 @@
from equinix.services.fabricv4.models.cloud_router_post_request_package import CloudRouterPostRequestPackage
from equinix.services.fabricv4.models.cloud_router_post_request_package_code import CloudRouterPostRequestPackageCode
from equinix.services.fabricv4.models.cloud_router_post_request_package_type import CloudRouterPostRequestPackageType
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_and_expression import CloudRouterRouteAggregationAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_expression import CloudRouterRouteAggregationExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_or_expression import CloudRouterRouteAggregationOrExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression import CloudRouterRouteAggregationSimpleExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression_property import CloudRouterRouteAggregationSimpleExpressionProperty
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_filter import CloudRouterRouteAggregationsFilter
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_base import CloudRouterRouteAggregationsSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_response import CloudRouterRouteAggregationsSearchResponse
+from equinix.services.fabricv4.models.cloud_router_route_filter_and_expression import CloudRouterRouteFilterAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_expression import CloudRouterRouteFilterExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_or_expression import CloudRouterRouteFilterOrExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression import CloudRouterRouteFilterSimpleExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression_property import CloudRouterRouteFilterSimpleExpressionProperty
+from equinix.services.fabricv4.models.cloud_router_route_filters_filter import CloudRouterRouteFiltersFilter
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_base import CloudRouterRouteFiltersSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_response import CloudRouterRouteFiltersSearchResponse
from equinix.services.fabricv4.models.cloud_router_search_request import CloudRouterSearchRequest
from equinix.services.fabricv4.models.cloud_router_simple_expression import CloudRouterSimpleExpression
from equinix.services.fabricv4.models.cloud_router_sort_by import CloudRouterSortBy
@@ -159,11 +190,13 @@
from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.models.company_profile_response_account import CompanyProfileResponseAccount
from equinix.services.fabricv4.models.company_profile_search_filter import CompanyProfileSearchFilter
from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
from equinix.services.fabricv4.models.company_profile_sort_direction import CompanyProfileSortDirection
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
+from equinix.services.fabricv4.models.configuration import Configuration
from equinix.services.fabricv4.models.connected_metro import ConnectedMetro
from equinix.services.fabricv4.models.connection import Connection
from equinix.services.fabricv4.models.connection_acceptance_data import ConnectionAcceptanceData
@@ -276,6 +309,7 @@
from equinix.services.fabricv4.models.marketplace_subscription_type import MarketplaceSubscriptionType
from equinix.services.fabricv4.models.md5 import Md5
from equinix.services.fabricv4.models.md5_type import Md5Type
+from equinix.services.fabricv4.models.messages_inner import MessagesInner
from equinix.services.fabricv4.models.metal_interconnection import MetalInterconnection
from equinix.services.fabricv4.models.metric import Metric
from equinix.services.fabricv4.models.metric_asset_type import MetricAssetType
@@ -428,6 +462,8 @@
from equinix.services.fabricv4.models.ptp_advance_configuration_log_sync_interval import PtpAdvanceConfigurationLogSyncInterval
from equinix.services.fabricv4.models.ptp_advance_configuration_time_scale import PtpAdvanceConfigurationTimeScale
from equinix.services.fabricv4.models.ptp_advance_configuration_transport_mode import PtpAdvanceConfigurationTransportMode
+from equinix.services.fabricv4.models.ra_attachment_sort_item import RaAttachmentSortItem
+from equinix.services.fabricv4.models.ra_attachment_sort_item_property import RaAttachmentSortItemProperty
from equinix.services.fabricv4.models.remove_operation import RemoveOperation
from equinix.services.fabricv4.models.replace_operation import ReplaceOperation
from equinix.services.fabricv4.models.resource_data import ResourceData
@@ -437,9 +473,18 @@
from equinix.services.fabricv4.models.response_incomplete_details_reason import ResponseIncompleteDetailsReason
from equinix.services.fabricv4.models.response_usage_input_tokens_details import ResponseUsageInputTokensDetails
from equinix.services.fabricv4.models.response_usage_output_tokens_details import ResponseUsageOutputTokensDetails
+from equinix.services.fabricv4.models.rf_attachment_sort_item import RfAttachmentSortItem
+from equinix.services.fabricv4.models.rf_attachment_sort_item_property import RfAttachmentSortItemProperty
from equinix.services.fabricv4.models.route_aggregation_change_data import RouteAggregationChangeData
from equinix.services.fabricv4.models.route_aggregation_change_data_response import RouteAggregationChangeDataResponse
from equinix.services.fabricv4.models.route_aggregation_connections_data import RouteAggregationConnectionsData
+from equinix.services.fabricv4.models.route_aggregation_rule_and_expression import RouteAggregationRuleAndExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_expression import RouteAggregationRuleExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_or_expression import RouteAggregationRuleOrExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_simple_expression import RouteAggregationRuleSimpleExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_by import RouteAggregationRuleSortBy
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_criteria import RouteAggregationRuleSortCriteria
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_direction import RouteAggregationRuleSortDirection
from equinix.services.fabricv4.models.route_aggregation_rule_state import RouteAggregationRuleState
from equinix.services.fabricv4.models.route_aggregation_rules_base import RouteAggregationRulesBase
from equinix.services.fabricv4.models.route_aggregation_rules_change import RouteAggregationRulesChange
@@ -449,8 +494,11 @@
from equinix.services.fabricv4.models.route_aggregation_rules_change_type import RouteAggregationRulesChangeType
from equinix.services.fabricv4.models.route_aggregation_rules_data import RouteAggregationRulesData
from equinix.services.fabricv4.models.route_aggregation_rules_data_type import RouteAggregationRulesDataType
+from equinix.services.fabricv4.models.route_aggregation_rules_filter import RouteAggregationRulesFilter
from equinix.services.fabricv4.models.route_aggregation_rules_patch_request_item import RouteAggregationRulesPatchRequestItem
from equinix.services.fabricv4.models.route_aggregation_rules_post_request import RouteAggregationRulesPostRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_request import RouteAggregationRulesSearchRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_response import RouteAggregationRulesSearchResponse
from equinix.services.fabricv4.models.route_aggregation_sort_item import RouteAggregationSortItem
from equinix.services.fabricv4.models.route_aggregation_sort_item_property import RouteAggregationSortItemProperty
from equinix.services.fabricv4.models.route_aggregation_state import RouteAggregationState
@@ -469,6 +517,13 @@
from equinix.services.fabricv4.models.route_filter_change_data import RouteFilterChangeData
from equinix.services.fabricv4.models.route_filter_change_data_response import RouteFilterChangeDataResponse
from equinix.services.fabricv4.models.route_filter_connections_data import RouteFilterConnectionsData
+from equinix.services.fabricv4.models.route_filter_rule_and_expression import RouteFilterRuleAndExpression
+from equinix.services.fabricv4.models.route_filter_rule_expression import RouteFilterRuleExpression
+from equinix.services.fabricv4.models.route_filter_rule_or_expression import RouteFilterRuleOrExpression
+from equinix.services.fabricv4.models.route_filter_rule_simple_expression import RouteFilterRuleSimpleExpression
+from equinix.services.fabricv4.models.route_filter_rule_sort_by import RouteFilterRuleSortBy
+from equinix.services.fabricv4.models.route_filter_rule_sort_criteria import RouteFilterRuleSortCriteria
+from equinix.services.fabricv4.models.route_filter_rule_sort_direction import RouteFilterRuleSortDirection
from equinix.services.fabricv4.models.route_filter_rule_state import RouteFilterRuleState
from equinix.services.fabricv4.models.route_filter_rules_base import RouteFilterRulesBase
from equinix.services.fabricv4.models.route_filter_rules_change import RouteFilterRulesChange
@@ -479,8 +534,11 @@
from equinix.services.fabricv4.models.route_filter_rules_data import RouteFilterRulesData
from equinix.services.fabricv4.models.route_filter_rules_data_action import RouteFilterRulesDataAction
from equinix.services.fabricv4.models.route_filter_rules_data_type import RouteFilterRulesDataType
+from equinix.services.fabricv4.models.route_filter_rules_filter import RouteFilterRulesFilter
from equinix.services.fabricv4.models.route_filter_rules_patch_request_item import RouteFilterRulesPatchRequestItem
from equinix.services.fabricv4.models.route_filter_rules_post_request import RouteFilterRulesPostRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_request import RouteFilterRulesSearchRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_response import RouteFilterRulesSearchResponse
from equinix.services.fabricv4.models.route_filter_state import RouteFilterState
from equinix.services.fabricv4.models.route_filters_base import RouteFiltersBase
from equinix.services.fabricv4.models.route_filters_base_type import RouteFiltersBaseType
@@ -546,7 +604,11 @@
from equinix.services.fabricv4.models.service_profile_access_point_type_vd import ServiceProfileAccessPointTypeVD
from equinix.services.fabricv4.models.service_profile_access_point_vd import ServiceProfileAccessPointVD
from equinix.services.fabricv4.models.service_profile_access_point_vd_type import ServiceProfileAccessPointVDType
+from equinix.services.fabricv4.models.service_profile_action_request import ServiceProfileActionRequest
+from equinix.services.fabricv4.models.service_profile_action_response import ServiceProfileActionResponse
from equinix.services.fabricv4.models.service_profile_and_filter import ServiceProfileAndFilter
+from equinix.services.fabricv4.models.service_profile_change import ServiceProfileChange
+from equinix.services.fabricv4.models.service_profile_change_status import ServiceProfileChangeStatus
from equinix.services.fabricv4.models.service_profile_filter import ServiceProfileFilter
from equinix.services.fabricv4.models.service_profile_link_protocol_config import ServiceProfileLinkProtocolConfig
from equinix.services.fabricv4.models.service_profile_link_protocol_config_encapsulation import ServiceProfileLinkProtocolConfigEncapsulation
@@ -673,6 +735,7 @@
from equinix.services.fabricv4.models.time_service_sort_criteria import TimeServiceSortCriteria
from equinix.services.fabricv4.models.time_service_sort_direction import TimeServiceSortDirection
from equinix.services.fabricv4.models.time_services_search_request import TimeServicesSearchRequest
+from equinix.services.fabricv4.models.tool_call_information_inner import ToolCallInformationInner
from equinix.services.fabricv4.models.validate_connection_response import ValidateConnectionResponse
from equinix.services.fabricv4.models.validate_request import ValidateRequest
from equinix.services.fabricv4.models.validate_request_filter import ValidateRequestFilter
diff --git a/equinix/services/fabricv4/api/__init__.py b/equinix/services/fabricv4/api/__init__.py
index f9986b2f..a9d4d55d 100644
--- a/equinix/services/fabricv4/api/__init__.py
+++ b/equinix/services/fabricv4/api/__init__.py
@@ -1,6 +1,8 @@
# flake8: noqa
# import apis into api package
+from equinix.services.fabricv4.api.agent_templates_api import AgentTemplatesApi
+from equinix.services.fabricv4.api.agents_api import AgentsApi
from equinix.services.fabricv4.api.cloud_events_api import CloudEventsApi
from equinix.services.fabricv4.api.cloud_routers_api import CloudRoutersApi
from equinix.services.fabricv4.api.company_profiles_api import CompanyProfilesApi
diff --git a/equinix/services/fabricv4/api/agent_templates_api.py b/equinix/services/fabricv4/api/agent_templates_api.py
new file mode 100644
index 00000000..594b3984
--- /dev/null
+++ b/equinix/services/fabricv4/api/agent_templates_api.py
@@ -0,0 +1,635 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictInt, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.agent_template_get_all_response import AgentTemplateGetAllResponse
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+
+from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
+from equinix.services.fabricv4.api_response import ApiResponse
+from equinix.services.fabricv4.rest import RESTResponseType
+
+
+class AgentTemplatesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def get_agent_template_by_uuid(
+ self,
+ agent_template_id: Annotated[StrictStr, Field(description="Agent Template UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AgentTemplates:
+ """Get Agent Template by UUID
+
+ This API provides capability to retrieve an agent template by uuid
+
+ :param agent_template_id: Agent Template UUID (required)
+ :type agent_template_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_template_by_uuid_serialize(
+ agent_template_id=agent_template_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplates",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_agent_template_by_uuid_with_http_info(
+ self,
+ agent_template_id: Annotated[StrictStr, Field(description="Agent Template UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AgentTemplates]:
+ """Get Agent Template by UUID
+
+ This API provides capability to retrieve an agent template by uuid
+
+ :param agent_template_id: Agent Template UUID (required)
+ :type agent_template_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_template_by_uuid_serialize(
+ agent_template_id=agent_template_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplates",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_agent_template_by_uuid_without_preload_content(
+ self,
+ agent_template_id: Annotated[StrictStr, Field(description="Agent Template UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Agent Template by UUID
+
+ This API provides capability to retrieve an agent template by uuid
+
+ :param agent_template_id: Agent Template UUID (required)
+ :type agent_template_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_template_by_uuid_serialize(
+ agent_template_id=agent_template_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplates",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_agent_template_by_uuid_serialize(
+ self,
+ agent_template_id,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if agent_template_id is not None:
+ _path_params['agentTemplateId'] = agent_template_id
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/agentTemplates/{agentTemplateId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_agent_templates(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AgentTemplateGetAllResponse:
+ """Get Agent Templates
+
+ This API provides capability to retrieve agent templates
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_templates_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplateGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_agent_templates_with_http_info(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AgentTemplateGetAllResponse]:
+ """Get Agent Templates
+
+ This API provides capability to retrieve agent templates
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_templates_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplateGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_agent_templates_without_preload_content(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Agent Templates
+
+ This API provides capability to retrieve agent templates
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_templates_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentTemplateGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_agent_templates_serialize(
+ self,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/agentTemplates',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/agents_api.py b/equinix/services/fabricv4/api/agents_api.py
new file mode 100644
index 00000000..d8b68f1b
--- /dev/null
+++ b/equinix/services/fabricv4/api/agents_api.py
@@ -0,0 +1,1842 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictInt, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.agent_get_activities import AgentGetActivities
+from equinix.services.fabricv4.models.agent_get_all_response import AgentGetAllResponse
+from equinix.services.fabricv4.models.agent_patch_request import AgentPatchRequest
+from equinix.services.fabricv4.models.agent_post_request import AgentPostRequest
+from equinix.services.fabricv4.models.agents import Agents
+
+from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
+from equinix.services.fabricv4.api_response import ApiResponse
+from equinix.services.fabricv4.rest import RESTResponseType
+
+
+class AgentsApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_agent(
+ self,
+ agent_post_request: AgentPostRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Agents:
+ """Create Agent
+
+ This API provides capability to create user's agent
+
+ :param agent_post_request: (required)
+ :type agent_post_request: AgentPostRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_agent_serialize(
+ agent_post_request=agent_post_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_agent_with_http_info(
+ self,
+ agent_post_request: AgentPostRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[Agents]:
+ """Create Agent
+
+ This API provides capability to create user's agent
+
+ :param agent_post_request: (required)
+ :type agent_post_request: AgentPostRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_agent_serialize(
+ agent_post_request=agent_post_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_agent_without_preload_content(
+ self,
+ agent_post_request: AgentPostRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Create Agent
+
+ This API provides capability to create user's agent
+
+ :param agent_post_request: (required)
+ :type agent_post_request: AgentPostRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_agent_serialize(
+ agent_post_request=agent_post_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_agent_serialize(
+ self,
+ agent_post_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if agent_post_request is not None:
+ _body_params = agent_post_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/agents',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def delete_agent_by_uuid(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Agents:
+ """Delete Agent by UUID
+
+ This API provides capability to delete an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def delete_agent_by_uuid_with_http_info(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[Agents]:
+ """Delete Agent by UUID
+
+ This API provides capability to delete an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def delete_agent_by_uuid_without_preload_content(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Delete Agent by UUID
+
+ This API provides capability to delete an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._delete_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_agent_by_uuid_serialize(
+ self,
+ agent_id,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if agent_id is not None:
+ _path_params['agentId'] = agent_id
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/fabric/v4/agents/{agentId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_agent_activities(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AgentGetActivities:
+ """Get Agent Activities
+
+ This API provides capability to retrieve an agent activities
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_activities_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetActivities",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_agent_activities_with_http_info(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AgentGetActivities]:
+ """Get Agent Activities
+
+ This API provides capability to retrieve an agent activities
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_activities_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetActivities",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_agent_activities_without_preload_content(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Agent Activities
+
+ This API provides capability to retrieve an agent activities
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_activities_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetActivities",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_agent_activities_serialize(
+ self,
+ agent_id,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if agent_id is not None:
+ _path_params['agentId'] = agent_id
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/agents/{agentId}/activities',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_agent_by_uuid(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Agents:
+ """Get Agent by UUID
+
+ This API provides capability to retrieve an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_agent_by_uuid_with_http_info(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[Agents]:
+ """Get Agent by UUID
+
+ This API provides capability to retrieve an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_agent_by_uuid_without_preload_content(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Agent by UUID
+
+ This API provides capability to retrieve an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_agent_by_uuid_serialize(
+ self,
+ agent_id,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if agent_id is not None:
+ _path_params['agentId'] = agent_id
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/agents/{agentId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def get_agents(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> AgentGetAllResponse:
+ """Get Agents
+
+ This API provides capability to retrieve agents
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agents_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_agents_with_http_info(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[AgentGetAllResponse]:
+ """Get Agents
+
+ This API provides capability to retrieve agents
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agents_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_agents_without_preload_content(
+ self,
+ offset: Annotated[Optional[StrictInt], Field(description="offset")] = None,
+ limit: Annotated[Optional[StrictInt], Field(description="number of records to fetch")] = None,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Get Agents
+
+ This API provides capability to retrieve agents
+
+ :param offset: offset
+ :type offset: int
+ :param limit: number of records to fetch
+ :type limit: int
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_agents_serialize(
+ offset=offset,
+ limit=limit,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "AgentGetAllResponse",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_agents_serialize(
+ self,
+ offset,
+ limit,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ # process the query parameters
+ if offset is not None:
+
+ _query_params.append(('offset', offset))
+
+ if limit is not None:
+
+ _query_params.append(('limit', limit))
+
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/fabric/v4/agents',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
+ @validate_call
+ def patch_agent_by_uuid(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ agent_patch_request: AgentPatchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> Agents:
+ """Update Agent by UUID
+
+ This API provides capability to update an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param agent_patch_request: (required)
+ :type agent_patch_request: AgentPatchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._patch_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ agent_patch_request=agent_patch_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def patch_agent_by_uuid_with_http_info(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ agent_patch_request: AgentPatchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[Agents]:
+ """Update Agent by UUID
+
+ This API provides capability to update an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param agent_patch_request: (required)
+ :type agent_patch_request: AgentPatchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._patch_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ agent_patch_request=agent_patch_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def patch_agent_by_uuid_without_preload_content(
+ self,
+ agent_id: Annotated[StrictStr, Field(description="Agent UUID")],
+ agent_patch_request: AgentPatchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Update Agent by UUID
+
+ This API provides capability to update an agent by uuid
+
+ :param agent_id: Agent UUID (required)
+ :type agent_id: str
+ :param agent_patch_request: (required)
+ :type agent_patch_request: AgentPatchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._patch_agent_by_uuid_serialize(
+ agent_id=agent_id,
+ agent_patch_request=agent_patch_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '202': "Agents",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _patch_agent_by_uuid_serialize(
+ self,
+ agent_id,
+ agent_patch_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if agent_id is not None:
+ _path_params['agentId'] = agent_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if agent_patch_request is not None:
+ _body_params = agent_patch_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/fabric/v4/agents/{agentId}',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/cloud_routers_api.py b/equinix/services/fabricv4/api/cloud_routers_api.py
index b138898f..6cb0eaf2 100644
--- a/equinix/services/fabricv4/api/cloud_routers_api.py
+++ b/equinix/services/fabricv4/api/cloud_routers_api.py
@@ -1839,10 +1839,10 @@ def get_cloud_router_actions(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> CloudRouterActionResponse:
+ ) -> CloudRouterActionsSearchResponse:
"""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 router_id: Router UUID (required)
:type router_id: str
@@ -1880,7 +1880,7 @@ def get_cloud_router_actions(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "CloudRouterActionResponse",
+ '200': "CloudRouterActionsSearchResponse",
'400': "List[Error]",
'401': "List[Error]",
'403': "List[Error]",
@@ -1916,10 +1916,10 @@ def get_cloud_router_actions_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[CloudRouterActionResponse]:
+ ) -> ApiResponse[CloudRouterActionsSearchResponse]:
"""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 router_id: Router UUID (required)
:type router_id: str
@@ -1957,7 +1957,7 @@ def get_cloud_router_actions_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "CloudRouterActionResponse",
+ '200': "CloudRouterActionsSearchResponse",
'400': "List[Error]",
'401': "List[Error]",
'403': "List[Error]",
@@ -1996,7 +1996,7 @@ def get_cloud_router_actions_without_preload_content(
) -> RESTResponseType:
"""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 router_id: Router UUID (required)
:type router_id: str
@@ -2034,7 +2034,7 @@ def get_cloud_router_actions_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "CloudRouterActionResponse",
+ '200': "CloudRouterActionsSearchResponse",
'400': "List[Error]",
'401': "List[Error]",
'403': "List[Error]",
@@ -5089,7 +5089,7 @@ def search_router_actions(
) -> CloudRouterActionsSearchResponse:
"""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 router_id: Router UUID (required)
:type router_id: str
@@ -5166,7 +5166,7 @@ def search_router_actions_with_http_info(
) -> ApiResponse[CloudRouterActionsSearchResponse]:
"""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 router_id: Router UUID (required)
:type router_id: str
@@ -5243,7 +5243,7 @@ def search_router_actions_without_preload_content(
) -> RESTResponseType:
"""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 router_id: Router UUID (required)
:type router_id: str
diff --git a/equinix/services/fabricv4/api/ports_api.py b/equinix/services/fabricv4/api/ports_api.py
index 94f8e84b..2327513a 100644
--- a/equinix/services/fabricv4/api/ports_api.py
+++ b/equinix/services/fabricv4/api/ports_api.py
@@ -402,7 +402,7 @@ def create_port(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Port",
- '201': "Port",
+ '202': "Port",
'400': "List[Error]",
'401': "List[Error]",
'500': "List[Error]",
@@ -477,7 +477,7 @@ def create_port_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Port",
- '201': "Port",
+ '202': "Port",
'400': "List[Error]",
'401': "List[Error]",
'500': "List[Error]",
@@ -552,7 +552,7 @@ def create_port_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "Port",
- '201': "Port",
+ '202': "Port",
'400': "List[Error]",
'401': "List[Error]",
'500': "List[Error]",
diff --git a/equinix/services/fabricv4/api/route_aggregation_rules_api.py b/equinix/services/fabricv4/api/route_aggregation_rules_api.py
index c015fea2..1fe3e0df 100644
--- a/equinix/services/fabricv4/api/route_aggregation_rules_api.py
+++ b/equinix/services/fabricv4/api/route_aggregation_rules_api.py
@@ -22,6 +22,8 @@
from equinix.services.fabricv4.models.route_aggregation_rules_data import RouteAggregationRulesData
from equinix.services.fabricv4.models.route_aggregation_rules_patch_request_item import RouteAggregationRulesPatchRequestItem
from equinix.services.fabricv4.models.route_aggregation_rules_post_request import RouteAggregationRulesPostRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_request import RouteAggregationRulesSearchRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_response import RouteAggregationRulesSearchResponse
from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
from equinix.services.fabricv4.api_response import ApiResponse
@@ -2828,3 +2830,310 @@ def _replace_route_aggregation_rule_by_uuid_serialize(
)
+
+
+ @validate_call
+ def search_route_aggregation_rules(
+ self,
+ route_aggregation_id: Annotated[StrictStr, Field(description="Route Aggregations Id")],
+ route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RouteAggregationRulesSearchResponse:
+ """Search Route Aggregation Rules
+
+ This API provides capability to search Route Aggregation Rules
+
+ :param route_aggregation_id: Route Aggregations Id (required)
+ :type route_aggregation_id: str
+ :param route_aggregation_rules_search_request: (required)
+ :type route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_aggregation_rules_serialize(
+ route_aggregation_id=route_aggregation_id,
+ route_aggregation_rules_search_request=route_aggregation_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteAggregationRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_route_aggregation_rules_with_http_info(
+ self,
+ route_aggregation_id: Annotated[StrictStr, Field(description="Route Aggregations Id")],
+ route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[RouteAggregationRulesSearchResponse]:
+ """Search Route Aggregation Rules
+
+ This API provides capability to search Route Aggregation Rules
+
+ :param route_aggregation_id: Route Aggregations Id (required)
+ :type route_aggregation_id: str
+ :param route_aggregation_rules_search_request: (required)
+ :type route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_aggregation_rules_serialize(
+ route_aggregation_id=route_aggregation_id,
+ route_aggregation_rules_search_request=route_aggregation_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteAggregationRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_route_aggregation_rules_without_preload_content(
+ self,
+ route_aggregation_id: Annotated[StrictStr, Field(description="Route Aggregations Id")],
+ route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Search Route Aggregation Rules
+
+ This API provides capability to search Route Aggregation Rules
+
+ :param route_aggregation_id: Route Aggregations Id (required)
+ :type route_aggregation_id: str
+ :param route_aggregation_rules_search_request: (required)
+ :type route_aggregation_rules_search_request: RouteAggregationRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_aggregation_rules_serialize(
+ route_aggregation_id=route_aggregation_id,
+ route_aggregation_rules_search_request=route_aggregation_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteAggregationRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_route_aggregation_rules_serialize(
+ self,
+ route_aggregation_id,
+ route_aggregation_rules_search_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if route_aggregation_id is not None:
+ _path_params['routeAggregationId'] = route_aggregation_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if route_aggregation_rules_search_request is not None:
+ _body_params = route_aggregation_rules_search_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/route_aggregations_api.py b/equinix/services/fabricv4/api/route_aggregations_api.py
index 6689b485..1a810e01 100644
--- a/equinix/services/fabricv4/api/route_aggregations_api.py
+++ b/equinix/services/fabricv4/api/route_aggregations_api.py
@@ -15,6 +15,8 @@
from pydantic import Field, StrictInt, StrictStr
from typing import List, Optional
from typing_extensions import Annotated
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_base import CloudRouterRouteAggregationsSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_response import CloudRouterRouteAggregationsSearchResponse
from equinix.services.fabricv4.models.connection_route_aggregation_data import ConnectionRouteAggregationData
from equinix.services.fabricv4.models.get_all_connection_route_aggregations_response import GetAllConnectionRouteAggregationsResponse
from equinix.services.fabricv4.models.get_route_aggregation_get_connections_response import GetRouteAggregationGetConnectionsResponse
@@ -3244,6 +3246,313 @@ def _patch_route_aggregation_by_uuid_serialize(
+ @validate_call
+ def search_cloud_router_route_aggregation_attachments(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CloudRouterRouteAggregationsSearchResponse:
+ """Search Cloud Router Route Aggregation Attachments
+
+ This API provides capability to search route aggregation attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_aggregations_search_base: (required)
+ :type cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_aggregation_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_aggregations_search_base=cloud_router_route_aggregations_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteAggregationsSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_cloud_router_route_aggregation_attachments_with_http_info(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CloudRouterRouteAggregationsSearchResponse]:
+ """Search Cloud Router Route Aggregation Attachments
+
+ This API provides capability to search route aggregation attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_aggregations_search_base: (required)
+ :type cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_aggregation_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_aggregations_search_base=cloud_router_route_aggregations_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteAggregationsSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_cloud_router_route_aggregation_attachments_without_preload_content(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Search Cloud Router Route Aggregation Attachments
+
+ This API provides capability to search route aggregation attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_aggregations_search_base: (required)
+ :type cloud_router_route_aggregations_search_base: CloudRouterRouteAggregationsSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_aggregation_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_aggregations_search_base=cloud_router_route_aggregations_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteAggregationsSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_cloud_router_route_aggregation_attachments_serialize(
+ self,
+ router_id,
+ cloud_router_route_aggregations_search_base,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if router_id is not None:
+ _path_params['routerId'] = router_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if cloud_router_route_aggregations_search_base is not None:
+ _body_params = cloud_router_route_aggregations_search_base
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/routers/{routerId}/routeAggregations/search',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def search_route_aggregations(
self,
diff --git a/equinix/services/fabricv4/api/route_filter_rules_api.py b/equinix/services/fabricv4/api/route_filter_rules_api.py
index ca34cdc5..f57718d6 100644
--- a/equinix/services/fabricv4/api/route_filter_rules_api.py
+++ b/equinix/services/fabricv4/api/route_filter_rules_api.py
@@ -22,6 +22,8 @@
from equinix.services.fabricv4.models.route_filter_rules_data import RouteFilterRulesData
from equinix.services.fabricv4.models.route_filter_rules_patch_request_item import RouteFilterRulesPatchRequestItem
from equinix.services.fabricv4.models.route_filter_rules_post_request import RouteFilterRulesPostRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_request import RouteFilterRulesSearchRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_response import RouteFilterRulesSearchResponse
from equinix.services.fabricv4.api_client import ApiClient, RequestSerialized
from equinix.services.fabricv4.api_response import ApiResponse
@@ -2828,3 +2830,310 @@ def _replace_route_filter_rule_by_uuid_serialize(
)
+
+
+ @validate_call
+ def search_route_filter_rules(
+ self,
+ route_filter_id: Annotated[StrictStr, Field(description="Route Filters Id")],
+ route_filter_rules_search_request: RouteFilterRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RouteFilterRulesSearchResponse:
+ """Search Route Filter Rules
+
+ This API provides capability to search Route Filter Rules
+
+ :param route_filter_id: Route Filters Id (required)
+ :type route_filter_id: str
+ :param route_filter_rules_search_request: (required)
+ :type route_filter_rules_search_request: RouteFilterRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_filter_rules_serialize(
+ route_filter_id=route_filter_id,
+ route_filter_rules_search_request=route_filter_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteFilterRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_route_filter_rules_with_http_info(
+ self,
+ route_filter_id: Annotated[StrictStr, Field(description="Route Filters Id")],
+ route_filter_rules_search_request: RouteFilterRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[RouteFilterRulesSearchResponse]:
+ """Search Route Filter Rules
+
+ This API provides capability to search Route Filter Rules
+
+ :param route_filter_id: Route Filters Id (required)
+ :type route_filter_id: str
+ :param route_filter_rules_search_request: (required)
+ :type route_filter_rules_search_request: RouteFilterRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_filter_rules_serialize(
+ route_filter_id=route_filter_id,
+ route_filter_rules_search_request=route_filter_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteFilterRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_route_filter_rules_without_preload_content(
+ self,
+ route_filter_id: Annotated[StrictStr, Field(description="Route Filters Id")],
+ route_filter_rules_search_request: RouteFilterRulesSearchRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Search Route Filter Rules
+
+ This API provides capability to search Route Filter Rules
+
+ :param route_filter_id: Route Filters Id (required)
+ :type route_filter_id: str
+ :param route_filter_rules_search_request: (required)
+ :type route_filter_rules_search_request: RouteFilterRulesSearchRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_route_filter_rules_serialize(
+ route_filter_id=route_filter_id,
+ route_filter_rules_search_request=route_filter_rules_search_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "RouteFilterRulesSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_route_filter_rules_serialize(
+ self,
+ route_filter_id,
+ route_filter_rules_search_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if route_filter_id is not None:
+ _path_params['routeFilterId'] = route_filter_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if route_filter_rules_search_request is not None:
+ _body_params = route_filter_rules_search_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
diff --git a/equinix/services/fabricv4/api/route_filters_api.py b/equinix/services/fabricv4/api/route_filters_api.py
index e1db9f73..1252d24d 100644
--- a/equinix/services/fabricv4/api/route_filters_api.py
+++ b/equinix/services/fabricv4/api/route_filters_api.py
@@ -15,6 +15,8 @@
from pydantic import Field, StrictInt, StrictStr
from typing import List, Optional
from typing_extensions import Annotated
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_base import CloudRouterRouteFiltersSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_response import CloudRouterRouteFiltersSearchResponse
from equinix.services.fabricv4.models.connection_route_filter_data import ConnectionRouteFilterData
from equinix.services.fabricv4.models.connection_route_filters_base import ConnectionRouteFiltersBase
from equinix.services.fabricv4.models.get_all_connection_route_filters_response import GetAllConnectionRouteFiltersResponse
@@ -3273,6 +3275,313 @@ def _patch_route_filter_by_uuid_serialize(
+ @validate_call
+ def search_cloud_router_route_filter_attachments(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> CloudRouterRouteFiltersSearchResponse:
+ """Search Cloud Router Route Filter Attachments
+
+ This API provides capability to search route filter attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_filters_search_base: (required)
+ :type cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_filter_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_filters_search_base=cloud_router_route_filters_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteFiltersSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def search_cloud_router_route_filter_attachments_with_http_info(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[CloudRouterRouteFiltersSearchResponse]:
+ """Search Cloud Router Route Filter Attachments
+
+ This API provides capability to search route filter attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_filters_search_base: (required)
+ :type cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_filter_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_filters_search_base=cloud_router_route_filters_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteFiltersSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def search_cloud_router_route_filter_attachments_without_preload_content(
+ self,
+ router_id: Annotated[StrictStr, Field(description="Cloud Router UUID")],
+ cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Search Cloud Router Route Filter Attachments
+
+ This API provides capability to search route filter attachments for a given cloud router Beta
+
+ :param router_id: Cloud Router UUID (required)
+ :type router_id: str
+ :param cloud_router_route_filters_search_base: (required)
+ :type cloud_router_route_filters_search_base: CloudRouterRouteFiltersSearchBase
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._search_cloud_router_route_filter_attachments_serialize(
+ router_id=router_id,
+ cloud_router_route_filters_search_base=cloud_router_route_filters_search_base,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "CloudRouterRouteFiltersSearchResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '415': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _search_cloud_router_route_filter_attachments_serialize(
+ self,
+ router_id,
+ cloud_router_route_filters_search_base,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if router_id is not None:
+ _path_params['routerId'] = router_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if cloud_router_route_filters_search_base is not None:
+ _body_params = cloud_router_route_filters_search_base
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/routers/{routerId}/routeFilters/search',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def search_route_filters(
self,
diff --git a/equinix/services/fabricv4/api/service_profiles_api.py b/equinix/services/fabricv4/api/service_profiles_api.py
index a39be7b6..e0b2f038 100644
--- a/equinix/services/fabricv4/api/service_profiles_api.py
+++ b/equinix/services/fabricv4/api/service_profiles_api.py
@@ -19,6 +19,8 @@
from equinix.services.fabricv4.models.json_patch_operation import JsonPatchOperation
from equinix.services.fabricv4.models.service_metros import ServiceMetros
from equinix.services.fabricv4.models.service_profile import ServiceProfile
+from equinix.services.fabricv4.models.service_profile_action_request import ServiceProfileActionRequest
+from equinix.services.fabricv4.models.service_profile_action_response import ServiceProfileActionResponse
from equinix.services.fabricv4.models.service_profile_request import ServiceProfileRequest
from equinix.services.fabricv4.models.service_profile_search_request import ServiceProfileSearchRequest
from equinix.services.fabricv4.models.service_profiles import ServiceProfiles
@@ -328,6 +330,311 @@ def _create_service_profile_serialize(
+ @validate_call
+ def create_service_profile_action(
+ self,
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ service_profile_action_request: ServiceProfileActionRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ServiceProfileActionResponse:
+ """Profile Actions
+
+ This API provides capability to accept/reject service profile update requests
+
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param service_profile_action_request: (required)
+ :type service_profile_action_request: ServiceProfileActionRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_service_profile_action_serialize(
+ service_profile_id=service_profile_id,
+ service_profile_action_request=service_profile_action_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ServiceProfileActionResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def create_service_profile_action_with_http_info(
+ self,
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ service_profile_action_request: ServiceProfileActionRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[ServiceProfileActionResponse]:
+ """Profile Actions
+
+ This API provides capability to accept/reject service profile update requests
+
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param service_profile_action_request: (required)
+ :type service_profile_action_request: ServiceProfileActionRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_service_profile_action_serialize(
+ service_profile_id=service_profile_id,
+ service_profile_action_request=service_profile_action_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ServiceProfileActionResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def create_service_profile_action_without_preload_content(
+ self,
+ service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
+ service_profile_action_request: ServiceProfileActionRequest,
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """Profile Actions
+
+ This API provides capability to accept/reject service profile update requests
+
+ :param service_profile_id: Service Profile UUID (required)
+ :type service_profile_id: str
+ :param service_profile_action_request: (required)
+ :type service_profile_action_request: ServiceProfileActionRequest
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._create_service_profile_action_serialize(
+ service_profile_id=service_profile_id,
+ service_profile_action_request=service_profile_action_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "ServiceProfileActionResponse",
+ '400': "List[Error]",
+ '401': "List[Error]",
+ '403': "List[Error]",
+ '404': "List[Error]",
+ '500': "List[Error]",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_service_profile_action_serialize(
+ self,
+ service_profile_id,
+ service_profile_action_request,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if service_profile_id is not None:
+ _path_params['serviceProfileId'] = service_profile_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if service_profile_action_request is not None:
+ _body_params = service_profile_action_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json; charset=UTF-8',
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/fabric/v4/serviceProfiles/{serviceProfileId}/actions',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def delete_service_profile_by_uuid(
self,
@@ -2139,7 +2446,6 @@ def _search_service_profiles_serialize(
def update_service_profile_by_uuid(
self,
service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
- if_match: Annotated[StrictStr, Field(description="conditional request")],
json_patch_operation: List[JsonPatchOperation],
_request_timeout: Union[
None,
@@ -2160,8 +2466,6 @@ def update_service_profile_by_uuid(
:param service_profile_id: Service Profile UUID (required)
:type service_profile_id: str
- :param if_match: conditional request (required)
- :type if_match: str
:param json_patch_operation: (required)
:type json_patch_operation: List[JsonPatchOperation]
:param _request_timeout: timeout setting for this request. If one
@@ -2188,7 +2492,6 @@ def update_service_profile_by_uuid(
_param = self._update_service_profile_by_uuid_serialize(
service_profile_id=service_profile_id,
- if_match=if_match,
json_patch_operation=json_patch_operation,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2202,7 +2505,6 @@ def update_service_profile_by_uuid(
'401': "List[Error]",
'403': "List[Error]",
'404': "List[Error]",
- '412': "List[Error]",
'500': "List[Error]",
}
response_data = self.api_client.call_api(
@@ -2220,7 +2522,6 @@ def update_service_profile_by_uuid(
def update_service_profile_by_uuid_with_http_info(
self,
service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
- if_match: Annotated[StrictStr, Field(description="conditional request")],
json_patch_operation: List[JsonPatchOperation],
_request_timeout: Union[
None,
@@ -2241,8 +2542,6 @@ def update_service_profile_by_uuid_with_http_info(
:param service_profile_id: Service Profile UUID (required)
:type service_profile_id: str
- :param if_match: conditional request (required)
- :type if_match: str
:param json_patch_operation: (required)
:type json_patch_operation: List[JsonPatchOperation]
:param _request_timeout: timeout setting for this request. If one
@@ -2269,7 +2568,6 @@ def update_service_profile_by_uuid_with_http_info(
_param = self._update_service_profile_by_uuid_serialize(
service_profile_id=service_profile_id,
- if_match=if_match,
json_patch_operation=json_patch_operation,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2283,7 +2581,6 @@ def update_service_profile_by_uuid_with_http_info(
'401': "List[Error]",
'403': "List[Error]",
'404': "List[Error]",
- '412': "List[Error]",
'500': "List[Error]",
}
response_data = self.api_client.call_api(
@@ -2301,7 +2598,6 @@ def update_service_profile_by_uuid_with_http_info(
def update_service_profile_by_uuid_without_preload_content(
self,
service_profile_id: Annotated[StrictStr, Field(description="Service Profile UUID")],
- if_match: Annotated[StrictStr, Field(description="conditional request")],
json_patch_operation: List[JsonPatchOperation],
_request_timeout: Union[
None,
@@ -2322,8 +2618,6 @@ def update_service_profile_by_uuid_without_preload_content(
:param service_profile_id: Service Profile UUID (required)
:type service_profile_id: str
- :param if_match: conditional request (required)
- :type if_match: str
:param json_patch_operation: (required)
:type json_patch_operation: List[JsonPatchOperation]
:param _request_timeout: timeout setting for this request. If one
@@ -2350,7 +2644,6 @@ def update_service_profile_by_uuid_without_preload_content(
_param = self._update_service_profile_by_uuid_serialize(
service_profile_id=service_profile_id,
- if_match=if_match,
json_patch_operation=json_patch_operation,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2364,7 +2657,6 @@ def update_service_profile_by_uuid_without_preload_content(
'401': "List[Error]",
'403': "List[Error]",
'404': "List[Error]",
- '412': "List[Error]",
'500': "List[Error]",
}
response_data = self.api_client.call_api(
@@ -2377,7 +2669,6 @@ def update_service_profile_by_uuid_without_preload_content(
def _update_service_profile_by_uuid_serialize(
self,
service_profile_id,
- if_match,
json_patch_operation,
_request_auth,
_content_type,
@@ -2405,8 +2696,6 @@ def _update_service_profile_by_uuid_serialize(
_path_params['serviceProfileId'] = service_profile_id
# process the query parameters
# process the header parameters
- if if_match is not None:
- _header_params['If-Match'] = if_match
# process the form parameters
# process the body parameter
if json_patch_operation is not None:
diff --git a/equinix/services/fabricv4/api/stream_alert_rules_api.py b/equinix/services/fabricv4/api/stream_alert_rules_api.py
index 08c4d1cb..ead4c10a 100644
--- a/equinix/services/fabricv4/api/stream_alert_rules_api.py
+++ b/equinix/services/fabricv4/api/stream_alert_rules_api.py
@@ -360,7 +360,7 @@ def delete_stream_alert_rule_by_uuid(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> StreamAlertRule:
- """Update Stream Alert Rules
+ """Delete Stream Alert Rules
This API provides capability to delete a user's stream alert rule
@@ -436,7 +436,7 @@ def delete_stream_alert_rule_by_uuid_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[StreamAlertRule]:
- """Update Stream Alert Rules
+ """Delete Stream Alert Rules
This API provides capability to delete a user's stream alert rule
@@ -512,7 +512,7 @@ def delete_stream_alert_rule_by_uuid_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Update Stream Alert Rules
+ """Delete Stream Alert Rules
This API provides capability to delete a user's stream alert rule
diff --git a/equinix/services/fabricv4/configuration.py b/equinix/services/fabricv4/configuration.py
index 8e01b5b1..b77df444 100644
--- a/equinix/services/fabricv4/configuration.py
+++ b/equinix/services/fabricv4/configuration.py
@@ -506,7 +506,7 @@ def to_debug_report(self) -> str:
return "Python SDK Debug Report:\n"\
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
- "Version of the API: 4.27\n"\
+ "Version of the API: 4.28\n"\
"SDK Package Version: 0.15.0".\
format(env=sys.platform, pyversion=sys.version)
diff --git a/equinix/services/fabricv4/docs/AccessPoint.md b/equinix/services/fabricv4/docs/AccessPoint.md
index f3ae93e0..b3344bac 100644
--- a/equinix/services/fabricv4/docs/AccessPoint.md
+++ b/equinix/services/fabricv4/docs/AccessPoint.md
@@ -22,7 +22,6 @@ Name | Type | Description | Notes
**provider_connection_id** | **str** | Provider assigned Connection Id | [optional]
**virtual_network** | [**VirtualNetwork**](VirtualNetwork.md) | | [optional]
**interconnection** | [**MetalInterconnection**](MetalInterconnection.md) | | [optional]
-**vpic_interface** | [**VpicInterface**](VpicInterface.md) | | [optional]
**role** | [**AccessPointRole**](AccessPointRole.md) | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/AccessPointType.md b/equinix/services/fabricv4/docs/AccessPointType.md
index 215a16bd..46db6a9b 100644
--- a/equinix/services/fabricv4/docs/AccessPointType.md
+++ b/equinix/services/fabricv4/docs/AccessPointType.md
@@ -24,6 +24,8 @@ Access point type
* `VPIC_INTERFACE` (value: `'VPIC_INTERFACE'`)
+* `APP_LINK` (value: `'APP_LINK'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/Agent.md b/equinix/services/fabricv4/docs/Agent.md
new file mode 100644
index 00000000..fb2701a1
--- /dev/null
+++ b/equinix/services/fabricv4/docs/Agent.md
@@ -0,0 +1,30 @@
+# Agent
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **str** | Agent Uuid | [optional]
+**type** | **str** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent import Agent
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Agent from a JSON string
+agent_instance = Agent.from_json(json)
+# print the JSON string representation of the object
+print(Agent.to_json())
+
+# convert the object into a dict
+agent_dict = agent_instance.to_dict()
+# create an instance of Agent from a dict
+agent_from_dict = Agent.from_dict(agent_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentActivities.md b/equinix/services/fabricv4/docs/AgentActivities.md
new file mode 100644
index 00000000..6a37abd0
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentActivities.md
@@ -0,0 +1,36 @@
+# AgentActivities
+
+Agent Activities object
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **str** | Agent Activities URI | [optional]
+**type** | **str** | type | [optional]
+**uuid** | **str** | Equinix-assigned agent operation identifier | [optional] [readonly]
+**agent** | [**Agent**](Agent.md) | | [optional]
+**status** | **str** | Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED | [optional]
+**metadata** | [**AgentActivitiesMetadata**](AgentActivitiesMetadata.md) | | [optional]
+**change_log** | [**Changelog**](Changelog.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_activities import AgentActivities
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentActivities from a JSON string
+agent_activities_instance = AgentActivities.from_json(json)
+# print the JSON string representation of the object
+print(AgentActivities.to_json())
+
+# convert the object into a dict
+agent_activities_dict = agent_activities_instance.to_dict()
+# create an instance of AgentActivities from a dict
+agent_activities_from_dict = AgentActivities.from_dict(agent_activities_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentActivitiesMetadata.md b/equinix/services/fabricv4/docs/AgentActivitiesMetadata.md
new file mode 100644
index 00000000..0bfd26ef
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentActivitiesMetadata.md
@@ -0,0 +1,30 @@
+# AgentActivitiesMetadata
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**chat_message** | [**ChatMessage**](ChatMessage.md) | | [optional]
+**tool_call_information** | [**List[ToolCallInformationInner]**](ToolCallInformationInner.md) | List of tools called during the agent operation | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_activities_metadata import AgentActivitiesMetadata
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentActivitiesMetadata from a JSON string
+agent_activities_metadata_instance = AgentActivitiesMetadata.from_json(json)
+# print the JSON string representation of the object
+print(AgentActivitiesMetadata.to_json())
+
+# convert the object into a dict
+agent_activities_metadata_dict = agent_activities_metadata_instance.to_dict()
+# create an instance of AgentActivitiesMetadata from a dict
+agent_activities_metadata_from_dict = AgentActivitiesMetadata.from_dict(agent_activities_metadata_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentDefinition.md b/equinix/services/fabricv4/docs/AgentDefinition.md
new file mode 100644
index 00000000..fc0a19df
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentDefinition.md
@@ -0,0 +1,29 @@
+# AgentDefinition
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**url** | **str** | Agent Template ReadMe (.md) Definition | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_definition import AgentDefinition
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentDefinition from a JSON string
+agent_definition_instance = AgentDefinition.from_json(json)
+# print the JSON string representation of the object
+print(AgentDefinition.to_json())
+
+# convert the object into a dict
+agent_definition_dict = agent_definition_instance.to_dict()
+# create an instance of AgentDefinition from a dict
+agent_definition_from_dict = AgentDefinition.from_dict(agent_definition_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentGetActivities.md b/equinix/services/fabricv4/docs/AgentGetActivities.md
new file mode 100644
index 00000000..1b4aa796
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentGetActivities.md
@@ -0,0 +1,30 @@
+# AgentGetActivities
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[AgentActivities]**](AgentActivities.md) | Data returned from the API call. | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_get_activities import AgentGetActivities
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentGetActivities from a JSON string
+agent_get_activities_instance = AgentGetActivities.from_json(json)
+# print the JSON string representation of the object
+print(AgentGetActivities.to_json())
+
+# convert the object into a dict
+agent_get_activities_dict = agent_get_activities_instance.to_dict()
+# create an instance of AgentGetActivities from a dict
+agent_get_activities_from_dict = AgentGetActivities.from_dict(agent_get_activities_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentGetAllResponse.md b/equinix/services/fabricv4/docs/AgentGetAllResponse.md
new file mode 100644
index 00000000..f78b4572
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentGetAllResponse.md
@@ -0,0 +1,30 @@
+# AgentGetAllResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[Agents]**](Agents.md) | Data returned from the API call. | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_get_all_response import AgentGetAllResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentGetAllResponse from a JSON string
+agent_get_all_response_instance = AgentGetAllResponse.from_json(json)
+# print the JSON string representation of the object
+print(AgentGetAllResponse.to_json())
+
+# convert the object into a dict
+agent_get_all_response_dict = agent_get_all_response_instance.to_dict()
+# create an instance of AgentGetAllResponse from a dict
+agent_get_all_response_from_dict = AgentGetAllResponse.from_dict(agent_get_all_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentPatchRequest.md b/equinix/services/fabricv4/docs/AgentPatchRequest.md
new file mode 100644
index 00000000..273a74ae
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentPatchRequest.md
@@ -0,0 +1,32 @@
+# AgentPatchRequest
+
+Update Agent
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**path** | **str** | path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt |
+**op** | **str** | Handy shortcut for operation name |
+**value** | **object** | new value for updated parameter |
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_patch_request import AgentPatchRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentPatchRequest from a JSON string
+agent_patch_request_instance = AgentPatchRequest.from_json(json)
+# print the JSON string representation of the object
+print(AgentPatchRequest.to_json())
+
+# convert the object into a dict
+agent_patch_request_dict = agent_patch_request_instance.to_dict()
+# create an instance of AgentPatchRequest from a dict
+agent_patch_request_from_dict = AgentPatchRequest.from_dict(agent_patch_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentPostRequest.md b/equinix/services/fabricv4/docs/AgentPostRequest.md
new file mode 100644
index 00000000..9c28648c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentPostRequest.md
@@ -0,0 +1,36 @@
+# AgentPostRequest
+
+Create Agent
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | |
+**name** | **str** | Customer-provided agent name |
+**description** | **str** | Customer-provided agent description | [optional]
+**enabled** | **bool** | Customer-provided agent enabled status | [optional]
+**project** | [**Project**](Project.md) | |
+**agent_template** | [**AgentTemplate**](AgentTemplate.md) | |
+**configuration** | [**Configuration**](Configuration.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_post_request import AgentPostRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentPostRequest from a JSON string
+agent_post_request_instance = AgentPostRequest.from_json(json)
+# print the JSON string representation of the object
+print(AgentPostRequest.to_json())
+
+# convert the object into a dict
+agent_post_request_dict = agent_post_request_instance.to_dict()
+# create an instance of AgentPostRequest from a dict
+agent_post_request_from_dict = AgentPostRequest.from_dict(agent_post_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentTemplate.md b/equinix/services/fabricv4/docs/AgentTemplate.md
new file mode 100644
index 00000000..ebf068a2
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentTemplate.md
@@ -0,0 +1,29 @@
+# AgentTemplate
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **str** | Agent Template Uuid | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_template import AgentTemplate
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentTemplate from a JSON string
+agent_template_instance = AgentTemplate.from_json(json)
+# print the JSON string representation of the object
+print(AgentTemplate.to_json())
+
+# convert the object into a dict
+agent_template_dict = agent_template_instance.to_dict()
+# create an instance of AgentTemplate from a dict
+agent_template_from_dict = AgentTemplate.from_dict(agent_template_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentTemplateGetAllResponse.md b/equinix/services/fabricv4/docs/AgentTemplateGetAllResponse.md
new file mode 100644
index 00000000..265ec734
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentTemplateGetAllResponse.md
@@ -0,0 +1,30 @@
+# AgentTemplateGetAllResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[AgentTemplates]**](AgentTemplates.md) | Data returned from the API call. | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_template_get_all_response import AgentTemplateGetAllResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentTemplateGetAllResponse from a JSON string
+agent_template_get_all_response_instance = AgentTemplateGetAllResponse.from_json(json)
+# print the JSON string representation of the object
+print(AgentTemplateGetAllResponse.to_json())
+
+# convert the object into a dict
+agent_template_get_all_response_dict = agent_template_get_all_response_instance.to_dict()
+# create an instance of AgentTemplateGetAllResponse from a dict
+agent_template_get_all_response_from_dict = AgentTemplateGetAllResponse.from_dict(agent_template_get_all_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentTemplates.md b/equinix/services/fabricv4/docs/AgentTemplates.md
new file mode 100644
index 00000000..b0d50df2
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentTemplates.md
@@ -0,0 +1,38 @@
+# AgentTemplates
+
+Agent Template object
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **str** | Agent Template URI | [optional]
+**type** | **str** | type | [optional]
+**uuid** | **str** | Equinix-assigned access point identifier | [optional]
+**name** | **str** | Equinix-provided agent template name | [optional]
+**description** | **str** | Equinix-provided agent template description | [optional]
+**state** | [**AgentTemplatesState**](AgentTemplatesState.md) | | [optional]
+**enabled** | **bool** | Equinix-provided agent template enabled status | [optional]
+**agent_definition** | [**AgentDefinition**](AgentDefinition.md) | | [optional]
+**change_log** | [**Changelog**](Changelog.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of AgentTemplates from a JSON string
+agent_templates_instance = AgentTemplates.from_json(json)
+# print the JSON string representation of the object
+print(AgentTemplates.to_json())
+
+# convert the object into a dict
+agent_templates_dict = agent_templates_instance.to_dict()
+# create an instance of AgentTemplates from a dict
+agent_templates_from_dict = AgentTemplates.from_dict(agent_templates_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentTemplatesApi.md b/equinix/services/fabricv4/docs/AgentTemplatesApi.md
new file mode 100644
index 00000000..7857b593
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentTemplatesApi.md
@@ -0,0 +1,180 @@
+# equinix.services.fabricv4.AgentTemplatesApi
+
+All URIs are relative to *https://api.equinix.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_agent_template_by_uuid**](AgentTemplatesApi.md#get_agent_template_by_uuid) | **GET** /fabric/v4/agentTemplates/{agentTemplateId} | Get Agent Template by UUID
+[**get_agent_templates**](AgentTemplatesApi.md#get_agent_templates) | **GET** /fabric/v4/agentTemplates | Get Agent Templates
+
+
+# **get_agent_template_by_uuid**
+> AgentTemplates get_agent_template_by_uuid(agent_template_id, offset=offset, limit=limit)
+
+Get Agent Template by UUID
+
+This API provides capability to retrieve an agent template by uuid
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentTemplatesApi(api_client)
+ agent_template_id = 'agent_template_id_example' # str | Agent Template UUID
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Get Agent Template by UUID
+ api_response = api_instance.get_agent_template_by_uuid(agent_template_id, offset=offset, limit=limit)
+ print("The response of AgentTemplatesApi->get_agent_template_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentTemplatesApi->get_agent_template_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_template_id** | **str**| Agent Template UUID |
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_agent_templates**
+> AgentTemplateGetAllResponse get_agent_templates(offset=offset, limit=limit)
+
+Get Agent Templates
+
+This API provides capability to retrieve agent templates
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_template_get_all_response import AgentTemplateGetAllResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentTemplatesApi(api_client)
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Get Agent Templates
+ api_response = api_instance.get_agent_templates(offset=offset, limit=limit)
+ print("The response of AgentTemplatesApi->get_agent_templates:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentTemplatesApi->get_agent_templates: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/AgentTemplatesState.md b/equinix/services/fabricv4/docs/AgentTemplatesState.md
new file mode 100644
index 00000000..115c5f32
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentTemplatesState.md
@@ -0,0 +1,21 @@
+# AgentTemplatesState
+
+Agent state
+
+## Enum
+
+* `PROVISIONING` (value: `'PROVISIONING'`)
+
+* `PROVISIONED` (value: `'PROVISIONED'`)
+
+* `REPROVISIONING` (value: `'REPROVISIONING'`)
+
+* `DEPROVISIONING` (value: `'DEPROVISIONING'`)
+
+* `DEPROVISIONED` (value: `'DEPROVISIONED'`)
+
+* `FAILED` (value: `'FAILED'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/Agents.md b/equinix/services/fabricv4/docs/Agents.md
new file mode 100644
index 00000000..ee084088
--- /dev/null
+++ b/equinix/services/fabricv4/docs/Agents.md
@@ -0,0 +1,40 @@
+# Agents
+
+Agent object
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **str** | Agent URI | [optional] [readonly]
+**type** | **str** | type | [optional]
+**uuid** | **str** | Equinix-assigned access point identifier | [optional]
+**name** | **str** | Customer-provided agent name | [optional]
+**description** | **str** | Customer-provided agent description | [optional]
+**state** | [**AgentTemplatesState**](AgentTemplatesState.md) | | [optional]
+**enabled** | **bool** | Customer-provided agent enabled status | [optional]
+**project** | [**Project**](Project.md) | | [optional]
+**agent_template** | [**AgentTemplate**](AgentTemplate.md) | | [optional]
+**configuration** | [**Configuration**](Configuration.md) | | [optional]
+**change_log** | [**Changelog**](Changelog.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.agents import Agents
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Agents from a JSON string
+agents_instance = Agents.from_json(json)
+# print the JSON string representation of the object
+print(Agents.to_json())
+
+# convert the object into a dict
+agents_dict = agents_instance.to_dict()
+# create an instance of Agents from a dict
+agents_from_dict = Agents.from_dict(agents_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/AgentsApi.md b/equinix/services/fabricv4/docs/AgentsApi.md
new file mode 100644
index 00000000..5b2afdd0
--- /dev/null
+++ b/equinix/services/fabricv4/docs/AgentsApi.md
@@ -0,0 +1,525 @@
+# equinix.services.fabricv4.AgentsApi
+
+All URIs are relative to *https://api.equinix.com*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**create_agent**](AgentsApi.md#create_agent) | **POST** /fabric/v4/agents | Create Agent
+[**delete_agent_by_uuid**](AgentsApi.md#delete_agent_by_uuid) | **DELETE** /fabric/v4/agents/{agentId} | Delete Agent by UUID
+[**get_agent_activities**](AgentsApi.md#get_agent_activities) | **GET** /fabric/v4/agents/{agentId}/activities | Get Agent Activities
+[**get_agent_by_uuid**](AgentsApi.md#get_agent_by_uuid) | **GET** /fabric/v4/agents/{agentId} | Get Agent by UUID
+[**get_agents**](AgentsApi.md#get_agents) | **GET** /fabric/v4/agents | Get Agents
+[**patch_agent_by_uuid**](AgentsApi.md#patch_agent_by_uuid) | **PATCH** /fabric/v4/agents/{agentId} | Update Agent by UUID
+
+
+# **create_agent**
+> Agents create_agent(agent_post_request)
+
+Create Agent
+
+This API provides capability to create user's agent
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_post_request import AgentPostRequest
+from equinix.services.fabricv4.models.agents import Agents
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ agent_post_request = equinix.services.fabricv4.AgentPostRequest() # AgentPostRequest |
+
+ try:
+ # Create Agent
+ api_response = api_instance.create_agent(agent_post_request)
+ print("The response of AgentsApi->create_agent:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->create_agent: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_post_request** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **delete_agent_by_uuid**
+> Agents delete_agent_by_uuid(agent_id, offset=offset, limit=limit)
+
+Delete Agent by UUID
+
+This API provides capability to delete an agent by uuid
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agents import Agents
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ agent_id = 'agent_id_example' # str | Agent UUID
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Delete Agent by UUID
+ api_response = api_instance.delete_agent_by_uuid(agent_id, offset=offset, limit=limit)
+ print("The response of AgentsApi->delete_agent_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->delete_agent_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_id** | **str**| Agent UUID |
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_agent_activities**
+> AgentGetActivities get_agent_activities(agent_id, offset=offset, limit=limit)
+
+Get Agent Activities
+
+This API provides capability to retrieve an agent activities
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_get_activities import AgentGetActivities
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ agent_id = 'agent_id_example' # str | Agent UUID
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Get Agent Activities
+ api_response = api_instance.get_agent_activities(agent_id, offset=offset, limit=limit)
+ print("The response of AgentsApi->get_agent_activities:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->get_agent_activities: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_id** | **str**| Agent UUID |
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_agent_by_uuid**
+> Agents get_agent_by_uuid(agent_id, offset=offset, limit=limit)
+
+Get Agent by UUID
+
+This API provides capability to retrieve an agent by uuid
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agents import Agents
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ agent_id = 'agent_id_example' # str | Agent UUID
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Get Agent by UUID
+ api_response = api_instance.get_agent_by_uuid(agent_id, offset=offset, limit=limit)
+ print("The response of AgentsApi->get_agent_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->get_agent_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_id** | **str**| Agent UUID |
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_agents**
+> AgentGetAllResponse get_agents(offset=offset, limit=limit)
+
+Get Agents
+
+This API provides capability to retrieve agents
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_get_all_response import AgentGetAllResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
+
+ try:
+ # Get Agents
+ api_response = api_instance.get_agents(offset=offset, limit=limit)
+ print("The response of AgentsApi->get_agents:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->get_agents: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **offset** | **int**| offset | [optional]
+ **limit** | **int**| 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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **patch_agent_by_uuid**
+> Agents patch_agent_by_uuid(agent_id, agent_patch_request)
+
+Update Agent by UUID
+
+This API provides capability to update an agent by uuid
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.agent_patch_request import AgentPatchRequest
+from equinix.services.fabricv4.models.agents import Agents
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.AgentsApi(api_client)
+ agent_id = 'agent_id_example' # str | Agent UUID
+ agent_patch_request = equinix.services.fabricv4.AgentPatchRequest() # AgentPatchRequest |
+
+ try:
+ # Update Agent by UUID
+ api_response = api_instance.patch_agent_by_uuid(agent_id, agent_patch_request)
+ print("The response of AgentsApi->patch_agent_by_uuid:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling AgentsApi->patch_agent_by_uuid: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **agent_id** | **str**| Agent UUID |
+ **agent_patch_request** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/Asset.md b/equinix/services/fabricv4/docs/Asset.md
index d3930e15..0a8bc8c9 100644
--- a/equinix/services/fabricv4/docs/Asset.md
+++ b/equinix/services/fabricv4/docs/Asset.md
@@ -15,6 +15,10 @@
* `PROJECTS` (value: `'projects'`)
+* `NETWORKEDGEDEVICES` (value: `'networkEdgeDevices'`)
+
+* `COMPANYPROFILES` (value: `'companyProfiles'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/Change.md b/equinix/services/fabricv4/docs/Change.md
index 48487678..b01a018d 100644
--- a/equinix/services/fabricv4/docs/Change.md
+++ b/equinix/services/fabricv4/docs/Change.md
@@ -8,7 +8,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**uuid** | **str** | Uniquely identifies a change | [optional]
**type** | [**ChangeType**](ChangeType.md) | |
-**status** | [**ChangeStatus**](ChangeStatus.md) | | [optional]
+**status** | [**ServiceProfileChangeStatus**](ServiceProfileChangeStatus.md) | | [optional]
**created_date_time** | **datetime** | Set when change flow starts |
**updated_date_time** | **datetime** | Set when change object is updated | [optional]
**information** | **str** | Additional information | [optional]
diff --git a/equinix/services/fabricv4/docs/ChatMessage.md b/equinix/services/fabricv4/docs/ChatMessage.md
new file mode 100644
index 00000000..c2f64ac6
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ChatMessage.md
@@ -0,0 +1,30 @@
+# 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]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.chat_message import ChatMessage
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ChatMessage from a JSON string
+chat_message_instance = ChatMessage.from_json(json)
+# print the JSON string representation of the object
+print(ChatMessage.to_json())
+
+# convert the object into a dict
+chat_message_dict = chat_message_instance.to_dict()
+# create an instance of ChatMessage from a dict
+chat_message_from_dict = ChatMessage.from_dict(chat_message_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudEventAssetType.md b/equinix/services/fabricv4/docs/CloudEventAssetType.md
index 7874dba1..04cd7c33 100644
--- a/equinix/services/fabricv4/docs/CloudEventAssetType.md
+++ b/equinix/services/fabricv4/docs/CloudEventAssetType.md
@@ -21,6 +21,8 @@
* `TIMESERVICES` (value: `'timeServices'`)
+* `COMPANYPROFILES` (value: `'companyProfiles'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md
new file mode 100644
index 00000000..d05d9953
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md
@@ -0,0 +1,30 @@
+# CloudRouterRouteAggregationAndExpression
+
+AND expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_and_expression import CloudRouterRouteAggregationAndExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationAndExpression from a JSON string
+cloud_router_route_aggregation_and_expression_instance = CloudRouterRouteAggregationAndExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationAndExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregation_and_expression_dict = cloud_router_route_aggregation_and_expression_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationAndExpression from a dict
+cloud_router_route_aggregation_and_expression_from_dict = CloudRouterRouteAggregationAndExpression.from_dict(cloud_router_route_aggregation_and_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md
new file mode 100644
index 00000000..b51857e6
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md
@@ -0,0 +1,34 @@
+# CloudRouterRouteAggregationExpression
+
+Filter expression that can be AND, OR, or a simple expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+**var_or** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+**var_property** | [**CloudRouterRouteAggregationSimpleExpressionProperty**](CloudRouterRouteAggregationSimpleExpressionProperty.md) | | [optional]
+**operator** | **str** | | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_expression import CloudRouterRouteAggregationExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationExpression from a JSON string
+cloud_router_route_aggregation_expression_instance = CloudRouterRouteAggregationExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregation_expression_dict = cloud_router_route_aggregation_expression_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationExpression from a dict
+cloud_router_route_aggregation_expression_from_dict = CloudRouterRouteAggregationExpression.from_dict(cloud_router_route_aggregation_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md
new file mode 100644
index 00000000..ade842ff
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md
@@ -0,0 +1,30 @@
+# CloudRouterRouteAggregationOrExpression
+
+OR expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_or** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_or_expression import CloudRouterRouteAggregationOrExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationOrExpression from a JSON string
+cloud_router_route_aggregation_or_expression_instance = CloudRouterRouteAggregationOrExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationOrExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregation_or_expression_dict = cloud_router_route_aggregation_or_expression_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationOrExpression from a dict
+cloud_router_route_aggregation_or_expression_from_dict = CloudRouterRouteAggregationOrExpression.from_dict(cloud_router_route_aggregation_or_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md
new file mode 100644
index 00000000..cc544e86
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteAggregationSimpleExpression
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | [**CloudRouterRouteAggregationSimpleExpressionProperty**](CloudRouterRouteAggregationSimpleExpressionProperty.md) | | [optional]
+**operator** | **str** | | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression import CloudRouterRouteAggregationSimpleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationSimpleExpression from a JSON string
+cloud_router_route_aggregation_simple_expression_instance = CloudRouterRouteAggregationSimpleExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationSimpleExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregation_simple_expression_dict = cloud_router_route_aggregation_simple_expression_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationSimpleExpression from a dict
+cloud_router_route_aggregation_simple_expression_from_dict = CloudRouterRouteAggregationSimpleExpression.from_dict(cloud_router_route_aggregation_simple_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpressionProperty.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpressionProperty.md
new file mode 100644
index 00000000..1877cd86
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpressionProperty.md
@@ -0,0 +1,12 @@
+# CloudRouterRouteAggregationSimpleExpressionProperty
+
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_ATTACHMENT_STATUS` (value: `'/attachmentStatus'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md
new file mode 100644
index 00000000..1ab2804f
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteAggregationsFilter
+
+Top-level filter that can be either an AND expression or OR expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+**var_or** | [**List[CloudRouterRouteAggregationExpression]**](CloudRouterRouteAggregationExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_filter import CloudRouterRouteAggregationsFilter
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationsFilter from a JSON string
+cloud_router_route_aggregations_filter_instance = CloudRouterRouteAggregationsFilter.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationsFilter.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregations_filter_dict = cloud_router_route_aggregations_filter_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationsFilter from a dict
+cloud_router_route_aggregations_filter_from_dict = CloudRouterRouteAggregationsFilter.from_dict(cloud_router_route_aggregations_filter_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md
new file mode 100644
index 00000000..7a49c8f3
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteAggregationsSearchBase
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filter** | [**CloudRouterRouteAggregationsFilter**](CloudRouterRouteAggregationsFilter.md) | | [optional]
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**sort** | [**List[RaAttachmentSortItem]**](RaAttachmentSortItem.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_base import CloudRouterRouteAggregationsSearchBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationsSearchBase from a JSON string
+cloud_router_route_aggregations_search_base_instance = CloudRouterRouteAggregationsSearchBase.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationsSearchBase.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregations_search_base_dict = cloud_router_route_aggregations_search_base_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationsSearchBase from a dict
+cloud_router_route_aggregations_search_base_from_dict = CloudRouterRouteAggregationsSearchBase.from_dict(cloud_router_route_aggregations_search_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md
new file mode 100644
index 00000000..4630c5a2
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md
@@ -0,0 +1,30 @@
+# 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]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_response import CloudRouterRouteAggregationsSearchResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteAggregationsSearchResponse from a JSON string
+cloud_router_route_aggregations_search_response_instance = CloudRouterRouteAggregationsSearchResponse.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteAggregationsSearchResponse.to_json())
+
+# convert the object into a dict
+cloud_router_route_aggregations_search_response_dict = cloud_router_route_aggregations_search_response_instance.to_dict()
+# create an instance of CloudRouterRouteAggregationsSearchResponse from a dict
+cloud_router_route_aggregations_search_response_from_dict = CloudRouterRouteAggregationsSearchResponse.from_dict(cloud_router_route_aggregations_search_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md
new file mode 100644
index 00000000..47848f61
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md
@@ -0,0 +1,30 @@
+# CloudRouterRouteFilterAndExpression
+
+AND expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filter_and_expression import CloudRouterRouteFilterAndExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFilterAndExpression from a JSON string
+cloud_router_route_filter_and_expression_instance = CloudRouterRouteFilterAndExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFilterAndExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_filter_and_expression_dict = cloud_router_route_filter_and_expression_instance.to_dict()
+# create an instance of CloudRouterRouteFilterAndExpression from a dict
+cloud_router_route_filter_and_expression_from_dict = CloudRouterRouteFilterAndExpression.from_dict(cloud_router_route_filter_and_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFilterExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteFilterExpression.md
new file mode 100644
index 00000000..4466c962
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFilterExpression.md
@@ -0,0 +1,34 @@
+# CloudRouterRouteFilterExpression
+
+Filter expression that can be AND, OR, or a simple expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+**var_or** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+**var_property** | [**CloudRouterRouteFilterSimpleExpressionProperty**](CloudRouterRouteFilterSimpleExpressionProperty.md) | | [optional]
+**operator** | **str** | | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filter_expression import CloudRouterRouteFilterExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFilterExpression from a JSON string
+cloud_router_route_filter_expression_instance = CloudRouterRouteFilterExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFilterExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_filter_expression_dict = cloud_router_route_filter_expression_instance.to_dict()
+# create an instance of CloudRouterRouteFilterExpression from a dict
+cloud_router_route_filter_expression_from_dict = CloudRouterRouteFilterExpression.from_dict(cloud_router_route_filter_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md
new file mode 100644
index 00000000..e342d070
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md
@@ -0,0 +1,30 @@
+# CloudRouterRouteFilterOrExpression
+
+OR expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_or** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filter_or_expression import CloudRouterRouteFilterOrExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFilterOrExpression from a JSON string
+cloud_router_route_filter_or_expression_instance = CloudRouterRouteFilterOrExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFilterOrExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_filter_or_expression_dict = cloud_router_route_filter_or_expression_instance.to_dict()
+# create an instance of CloudRouterRouteFilterOrExpression from a dict
+cloud_router_route_filter_or_expression_from_dict = CloudRouterRouteFilterOrExpression.from_dict(cloud_router_route_filter_or_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md b/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md
new file mode 100644
index 00000000..e2369e10
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteFilterSimpleExpression
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | [**CloudRouterRouteFilterSimpleExpressionProperty**](CloudRouterRouteFilterSimpleExpressionProperty.md) | | [optional]
+**operator** | **str** | | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression import CloudRouterRouteFilterSimpleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFilterSimpleExpression from a JSON string
+cloud_router_route_filter_simple_expression_instance = CloudRouterRouteFilterSimpleExpression.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFilterSimpleExpression.to_json())
+
+# convert the object into a dict
+cloud_router_route_filter_simple_expression_dict = cloud_router_route_filter_simple_expression_instance.to_dict()
+# create an instance of CloudRouterRouteFilterSimpleExpression from a dict
+cloud_router_route_filter_simple_expression_from_dict = CloudRouterRouteFilterSimpleExpression.from_dict(cloud_router_route_filter_simple_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpressionProperty.md b/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpressionProperty.md
new file mode 100644
index 00000000..7246e252
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpressionProperty.md
@@ -0,0 +1,14 @@
+# CloudRouterRouteFilterSimpleExpressionProperty
+
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_DIRECTION` (value: `'/direction'`)
+
+* `SLASH_ATTACHMENT_STATUS` (value: `'/attachmentStatus'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md
new file mode 100644
index 00000000..59158bde
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteFiltersFilter
+
+Top-level filter that can be either an AND expression or OR expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+**var_or** | [**List[CloudRouterRouteFilterExpression]**](CloudRouterRouteFilterExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filters_filter import CloudRouterRouteFiltersFilter
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFiltersFilter from a JSON string
+cloud_router_route_filters_filter_instance = CloudRouterRouteFiltersFilter.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFiltersFilter.to_json())
+
+# convert the object into a dict
+cloud_router_route_filters_filter_dict = cloud_router_route_filters_filter_instance.to_dict()
+# create an instance of CloudRouterRouteFiltersFilter from a dict
+cloud_router_route_filters_filter_from_dict = CloudRouterRouteFiltersFilter.from_dict(cloud_router_route_filters_filter_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md
new file mode 100644
index 00000000..e66a67c7
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md
@@ -0,0 +1,31 @@
+# CloudRouterRouteFiltersSearchBase
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**filter** | [**CloudRouterRouteFiltersFilter**](CloudRouterRouteFiltersFilter.md) | | [optional]
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**sort** | [**List[RfAttachmentSortItem]**](RfAttachmentSortItem.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_base import CloudRouterRouteFiltersSearchBase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFiltersSearchBase from a JSON string
+cloud_router_route_filters_search_base_instance = CloudRouterRouteFiltersSearchBase.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFiltersSearchBase.to_json())
+
+# convert the object into a dict
+cloud_router_route_filters_search_base_dict = cloud_router_route_filters_search_base_instance.to_dict()
+# create an instance of CloudRouterRouteFiltersSearchBase from a dict
+cloud_router_route_filters_search_base_from_dict = CloudRouterRouteFiltersSearchBase.from_dict(cloud_router_route_filters_search_base_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md
new file mode 100644
index 00000000..beebe4c4
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md
@@ -0,0 +1,30 @@
+# 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]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_response import CloudRouterRouteFiltersSearchResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CloudRouterRouteFiltersSearchResponse from a JSON string
+cloud_router_route_filters_search_response_instance = CloudRouterRouteFiltersSearchResponse.from_json(json)
+# print the JSON string representation of the object
+print(CloudRouterRouteFiltersSearchResponse.to_json())
+
+# convert the object into a dict
+cloud_router_route_filters_search_response_dict = cloud_router_route_filters_search_response_instance.to_dict()
+# create an instance of CloudRouterRouteFiltersSearchResponse from a dict
+cloud_router_route_filters_search_response_from_dict = CloudRouterRouteFiltersSearchResponse.from_dict(cloud_router_route_filters_search_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/CloudRoutersApi.md b/equinix/services/fabricv4/docs/CloudRoutersApi.md
index c27c1769..da417a1d 100644
--- a/equinix/services/fabricv4/docs/CloudRoutersApi.md
+++ b/equinix/services/fabricv4/docs/CloudRoutersApi.md
@@ -532,11 +532,11 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_cloud_router_actions**
-> CloudRouterActionResponse get_cloud_router_actions(router_id, state=state)
+> CloudRouterActionsSearchResponse get_cloud_router_actions(router_id, state=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
@@ -544,8 +544,8 @@ This API provides capability to fetch action status
```python
import equinix.services.fabricv4
-from equinix.services.fabricv4.models.cloud_router_action_response import CloudRouterActionResponse
from equinix.services.fabricv4.models.cloud_router_action_state import CloudRouterActionState
+from equinix.services.fabricv4.models.cloud_router_actions_search_response import CloudRouterActionsSearchResponse
from equinix.services.fabricv4.rest import ApiException
from pprint import pprint
@@ -593,7 +593,7 @@ Name | Type | Description | Notes
### Return type
-[**CloudRouterActionResponse**](CloudRouterActionResponse.md)
+[**CloudRouterActionsSearchResponse**](CloudRouterActionsSearchResponse.md)
### Authorization
@@ -1476,7 +1476,7 @@ Name | Type | Description | Notes
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
diff --git a/equinix/services/fabricv4/docs/CompanyProfileResponse.md b/equinix/services/fabricv4/docs/CompanyProfileResponse.md
index 9e2a94d2..879ffac6 100644
--- a/equinix/services/fabricv4/docs/CompanyProfileResponse.md
+++ b/equinix/services/fabricv4/docs/CompanyProfileResponse.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**summary** | **str** | | [optional]
**description** | **str** | | [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/equinix/services/fabricv4/docs/CompanyProfileResponseAccount.md b/equinix/services/fabricv4/docs/CompanyProfileResponseAccount.md
new file mode 100644
index 00000000..c8e61609
--- /dev/null
+++ b/equinix/services/fabricv4/docs/CompanyProfileResponseAccount.md
@@ -0,0 +1,29 @@
+# CompanyProfileResponseAccount
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**root_org_id** | **str** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.company_profile_response_account import CompanyProfileResponseAccount
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of CompanyProfileResponseAccount from a JSON string
+company_profile_response_account_instance = CompanyProfileResponseAccount.from_json(json)
+# print the JSON string representation of the object
+print(CompanyProfileResponseAccount.to_json())
+
+# convert the object into a dict
+company_profile_response_account_dict = company_profile_response_account_instance.to_dict()
+# create an instance of CompanyProfileResponseAccount from a dict
+company_profile_response_account_from_dict = CompanyProfileResponseAccount.from_dict(company_profile_response_account_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/Configuration.md b/equinix/services/fabricv4/docs/Configuration.md
new file mode 100644
index 00000000..be53f58c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/Configuration.md
@@ -0,0 +1,29 @@
+# Configuration
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**prompt** | **str** | Agent configuration prompt to be used for agent specification | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.configuration import Configuration
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of Configuration from a JSON string
+configuration_instance = Configuration.from_json(json)
+# print the JSON string representation of the object
+print(Configuration.to_json())
+
+# convert the object into a dict
+configuration_dict = configuration_instance.to_dict()
+# create an instance of Configuration from a dict
+configuration_from_dict = Configuration.from_dict(configuration_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/Connection.md b/equinix/services/fabricv4/docs/Connection.md
index d9150cbc..83a096f8 100644
--- a/equinix/services/fabricv4/docs/Connection.md
+++ b/equinix/services/fabricv4/docs/Connection.md
@@ -11,7 +11,6 @@ Name | Type | Description | Notes
**uuid** | **str** | Equinix-assigned connection identifier | [optional]
**name** | **str** | Customer-provided connection name |
**description** | **str** | Customer-provided connection description | [optional]
-**state** | [**ConnectionState**](ConnectionState.md) | | [optional]
**change** | [**Change**](Change.md) | | [optional]
**operation** | [**ConnectionOperation**](ConnectionOperation.md) | | [optional]
**order** | [**Order**](Order.md) | | [optional]
diff --git a/equinix/services/fabricv4/docs/ConnectionSide.md b/equinix/services/fabricv4/docs/ConnectionSide.md
index 989a48be..00198cee 100644
--- a/equinix/services/fabricv4/docs/ConnectionSide.md
+++ b/equinix/services/fabricv4/docs/ConnectionSide.md
@@ -8,9 +8,6 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**service_token** | [**ServiceToken**](ServiceToken.md) | | [optional]
**access_point** | [**AccessPoint**](AccessPoint.md) | | [optional]
-**internet_access** | [**InternetAccess**](InternetAccess.md) | | [optional]
-**company_profile** | [**ConnectionCompanyProfile**](ConnectionCompanyProfile.md) | | [optional]
-**invitation** | [**ConnectionInvitation**](ConnectionInvitation.md) | | [optional]
**additional_info** | [**List[ConnectionSideAdditionalInfo]**](ConnectionSideAdditionalInfo.md) | Any additional information, which is not part of connection metadata or configuration | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/ConnectionState.md b/equinix/services/fabricv4/docs/ConnectionState.md
index 71905ca4..eb7e9a26 100644
--- a/equinix/services/fabricv4/docs/ConnectionState.md
+++ b/equinix/services/fabricv4/docs/ConnectionState.md
@@ -18,12 +18,8 @@ Connection status
* `PENDING` (value: `'PENDING'`)
-* `PROVISIONED` (value: `'PROVISIONED'`)
-
* `PROVISIONING` (value: `'PROVISIONING'`)
-* `REPROVISIONING` (value: `'REPROVISIONING'`)
-
* `EMPTY` (value: `''`)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/ConnectionType.md b/equinix/services/fabricv4/docs/ConnectionType.md
index 2a2c075b..3e71b5ed 100644
--- a/equinix/services/fabricv4/docs/ConnectionType.md
+++ b/equinix/services/fabricv4/docs/ConnectionType.md
@@ -30,9 +30,7 @@ Connection type
* `MC_VC` (value: `'MC_VC'`)
-* `IX_PUBLIC_VC` (value: `'IX_PUBLIC_VC'`)
-
-* `IX_PRIVATE_VC` (value: `'IX_PRIVATE_VC'`)
+* `IX_VC` (value: `'IX_VC'`)
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/EquinixStatus.md b/equinix/services/fabricv4/docs/EquinixStatus.md
index 3ef14935..199ee8bc 100644
--- a/equinix/services/fabricv4/docs/EquinixStatus.md
+++ b/equinix/services/fabricv4/docs/EquinixStatus.md
@@ -12,22 +12,6 @@ Connection status
* `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'`)
@@ -48,16 +32,8 @@ Connection status
* `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'`)
@@ -66,8 +42,6 @@ Connection status
* `PENDING_INTERFACE_CONFIGURATION` (value: `'PENDING_INTERFACE_CONFIGURATION'`)
-* `PENDING_ACTIVATION` (value: `'PENDING_ACTIVATION'`)
-
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/ExpressionOperator.md b/equinix/services/fabricv4/docs/ExpressionOperator.md
index 2ea26b78..4d453ce3 100644
--- a/equinix/services/fabricv4/docs/ExpressionOperator.md
+++ b/equinix/services/fabricv4/docs/ExpressionOperator.md
@@ -9,14 +9,24 @@
* `GREATER_THAN` (value: `'>'`)
+* `GREATER_THAN_EQUAL` (value: `'>='`)
+
* `LESS_THAN` (value: `'<'`)
+* `LESS_THAN_EQUAL` (value: `'<='`)
+
* `LIKE` (value: `'LIKE'`)
+* `ILKE` (value: `'ILKE'`)
+
* `IS_NOT_NULL` (value: `'IS NOT NULL'`)
* `IS_NULL` (value: `'IS NULL'`)
+* `IN` (value: `'IN'`)
+
+* `BETWEEN` (value: `'BETWEEN'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/MessagesInner.md b/equinix/services/fabricv4/docs/MessagesInner.md
new file mode 100644
index 00000000..0a45846e
--- /dev/null
+++ b/equinix/services/fabricv4/docs/MessagesInner.md
@@ -0,0 +1,30 @@
+# MessagesInner
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Role of the message sender user or assistant | [optional]
+**content** | **str** | Content of the chat message | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.messages_inner import MessagesInner
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of MessagesInner from a JSON string
+messages_inner_instance = MessagesInner.from_json(json)
+# print the JSON string representation of the object
+print(MessagesInner.to_json())
+
+# convert the object into a dict
+messages_inner_dict = messages_inner_instance.to_dict()
+# create an instance of MessagesInner from a dict
+messages_inner_from_dict = MessagesInner.from_dict(messages_inner_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/Order.md b/equinix/services/fabricv4/docs/Order.md
index 287ccc9e..48108331 100644
--- a/equinix/services/fabricv4/docs/Order.md
+++ b/equinix/services/fabricv4/docs/Order.md
@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**order_id** | **str** | Order Identification | [optional]
**order_number** | **str** | Order Reference Number | [optional]
**term_length** | **int** | Term length in months, valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case). | [optional] [default to 1]
+**contracted_bandwidth** | **int** | Contracted bandwidth | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/PortRequest.md b/equinix/services/fabricv4/docs/PortRequest.md
index d456a5df..4a455e1c 100644
--- a/equinix/services/fabricv4/docs/PortRequest.md
+++ b/equinix/services/fabricv4/docs/PortRequest.md
@@ -37,10 +37,8 @@ Name | Type | Description | Notes
**physical_port_quantity** | **int** | Number of physical ports | [optional]
**notifications** | [**List[PortNotification]**](PortNotification.md) | Notification preferences | [optional]
**additional_info** | [**List[PortAdditionalInfo]**](PortAdditionalInfo.md) | Port additional information | [optional]
-**end_customer** | [**EndCustomer**](EndCustomer.md) | | [optional]
**physical_ports** | [**List[PhysicalPort]**](PhysicalPort.md) | Physical ports that implement this port | [optional]
**loas** | [**List[PortLoa]**](PortLoa.md) | Port Loas | [optional]
-**marketplace_subscription** | [**MarketplaceSubscription**](MarketplaceSubscription.md) | | [optional]
## Example
diff --git a/equinix/services/fabricv4/docs/PortSortBy.md b/equinix/services/fabricv4/docs/PortSortBy.md
index 5a9caa2b..f4bbe2b9 100644
--- a/equinix/services/fabricv4/docs/PortSortBy.md
+++ b/equinix/services/fabricv4/docs/PortSortBy.md
@@ -6,6 +6,26 @@ Possible field names to use on sorting
* `SLASH_DEVICE_SLASH_NAME` (value: `'/device/name'`)
+* `SLASH_NAME` (value: `'/name'`)
+
+* `SLASH_STATE` (value: `'/state'`)
+
+* `SLASH_LOCATION_SLASH_METRO_NAME` (value: `'/location/metroName'`)
+
+* `SLASH_DEMARCATION_POINT_IBX` (value: `'/demarcationPointIbx'`)
+
+* `SLASH_DEVICE_SLASH_REDUNDANCY_SLASH_PRIORITY` (value: `'/device/redundancy/priority'`)
+
+* `SLASH_LAG_ENABLED` (value: `'/lagEnabled'`)
+
+* `SLASH_PHYSICAL_PORTS_SPEED` (value: `'/physicalPortsSpeed'`)
+
+* `SLASH_ENCAPSULATION_SLASH_TYPE` (value: `'/encapsulation/type'`)
+
+* `SLASH_PHYSICAL_PORTS_SLASH_TETHER_SLASH_CROSS_CONNECT_ID` (value: `'/physicalPorts/tether/crossConnectId'`)
+
+* `SLASH_PACKAGE_SLASH_CODE` (value: `'/package/code'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/PortSortCriteria.md b/equinix/services/fabricv4/docs/PortSortCriteria.md
index fe523850..e5c31cbb 100644
--- a/equinix/services/fabricv4/docs/PortSortCriteria.md
+++ b/equinix/services/fabricv4/docs/PortSortCriteria.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**direction** | [**PortSortDirection**](PortSortDirection.md) | | [optional] [default to PortSortDirection.DESC]
-**var_property** | [**PortSortBy**](PortSortBy.md) | | [optional] [default to PortSortBy.SLASH_DEVICE_SLASH_NAME]
+**var_property** | [**PortSortBy**](PortSortBy.md) | | [optional] [default to PortSortBy.DEVICE_SLASH_NAME]
## Example
diff --git a/equinix/services/fabricv4/docs/PortsApi.md b/equinix/services/fabricv4/docs/PortsApi.md
index acbb5f70..9e9c3ab4 100644
--- a/equinix/services/fabricv4/docs/PortsApi.md
+++ b/equinix/services/fabricv4/docs/PortsApi.md
@@ -177,7 +177,7 @@ Name | Type | Description | Notes
| 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/equinix/services/fabricv4/docs/ProductType.md b/equinix/services/fabricv4/docs/ProductType.md
index f454da2d..b4985ae7 100644
--- a/equinix/services/fabricv4/docs/ProductType.md
+++ b/equinix/services/fabricv4/docs/ProductType.md
@@ -14,6 +14,8 @@ Product type
* `PRECISION_TIME_PRODUCT` (value: `'PRECISION_TIME_PRODUCT'`)
+* `METRO_CONNECT_PRODUCT` (value: `'METRO_CONNECT_PRODUCT'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/ProviderStatus.md b/equinix/services/fabricv4/docs/ProviderStatus.md
index 5dd40af9..72cca249 100644
--- a/equinix/services/fabricv4/docs/ProviderStatus.md
+++ b/equinix/services/fabricv4/docs/ProviderStatus.md
@@ -26,18 +26,8 @@ Connection provider readiness status
* `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/equinix/services/fabricv4/docs/RaAttachmentSortItem.md b/equinix/services/fabricv4/docs/RaAttachmentSortItem.md
new file mode 100644
index 00000000..fb8345e3
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RaAttachmentSortItem.md
@@ -0,0 +1,30 @@
+# RaAttachmentSortItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | [**RaAttachmentSortItemProperty**](RaAttachmentSortItemProperty.md) | | [optional] [default to RaAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME]
+**direction** | [**SortItemDirection**](SortItemDirection.md) | | [optional] [default to SortItemDirection.DESC]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.ra_attachment_sort_item import RaAttachmentSortItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RaAttachmentSortItem from a JSON string
+ra_attachment_sort_item_instance = RaAttachmentSortItem.from_json(json)
+# print the JSON string representation of the object
+print(RaAttachmentSortItem.to_json())
+
+# convert the object into a dict
+ra_attachment_sort_item_dict = ra_attachment_sort_item_instance.to_dict()
+# create an instance of RaAttachmentSortItem from a dict
+ra_attachment_sort_item_from_dict = RaAttachmentSortItem.from_dict(ra_attachment_sort_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RaAttachmentSortItemProperty.md b/equinix/services/fabricv4/docs/RaAttachmentSortItemProperty.md
new file mode 100644
index 00000000..9c495202
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RaAttachmentSortItemProperty.md
@@ -0,0 +1,19 @@
+# RaAttachmentSortItemProperty
+
+Possible field names to use on sorting
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_UUID` (value: `'/uuid'`)
+
+* `SLASH_ATTACHMENT_STATUS` (value: `'/attachmentStatus'`)
+
+* `SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME` (value: `'/changeLog/createdDateTime'`)
+
+* `SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME` (value: `'/changeLog/updatedDateTime'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RfAttachmentSortItem.md b/equinix/services/fabricv4/docs/RfAttachmentSortItem.md
new file mode 100644
index 00000000..cc40050f
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RfAttachmentSortItem.md
@@ -0,0 +1,30 @@
+# RfAttachmentSortItem
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | [**RfAttachmentSortItemProperty**](RfAttachmentSortItemProperty.md) | | [optional] [default to RfAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME]
+**direction** | [**SortItemDirection**](SortItemDirection.md) | | [optional] [default to SortItemDirection.DESC]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.rf_attachment_sort_item import RfAttachmentSortItem
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RfAttachmentSortItem from a JSON string
+rf_attachment_sort_item_instance = RfAttachmentSortItem.from_json(json)
+# print the JSON string representation of the object
+print(RfAttachmentSortItem.to_json())
+
+# convert the object into a dict
+rf_attachment_sort_item_dict = rf_attachment_sort_item_instance.to_dict()
+# create an instance of RfAttachmentSortItem from a dict
+rf_attachment_sort_item_from_dict = RfAttachmentSortItem.from_dict(rf_attachment_sort_item_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RfAttachmentSortItemProperty.md b/equinix/services/fabricv4/docs/RfAttachmentSortItemProperty.md
new file mode 100644
index 00000000..c026c21b
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RfAttachmentSortItemProperty.md
@@ -0,0 +1,21 @@
+# RfAttachmentSortItemProperty
+
+Possible field names to use on sorting
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_UUID` (value: `'/uuid'`)
+
+* `SLASH_DIRECTION` (value: `'/direction'`)
+
+* `SLASH_ATTACHMENT_STATUS` (value: `'/attachmentStatus'`)
+
+* `SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME` (value: `'/changeLog/createdDateTime'`)
+
+* `SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME` (value: `'/changeLog/updatedDateTime'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleAndExpression.md b/equinix/services/fabricv4/docs/RouteAggregationRuleAndExpression.md
new file mode 100644
index 00000000..4eb05d6c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleAndExpression.md
@@ -0,0 +1,30 @@
+# RouteAggregationRuleAndExpression
+
+AND expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rule_and_expression import RouteAggregationRuleAndExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRuleAndExpression from a JSON string
+route_aggregation_rule_and_expression_instance = RouteAggregationRuleAndExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRuleAndExpression.to_json())
+
+# convert the object into a dict
+route_aggregation_rule_and_expression_dict = route_aggregation_rule_and_expression_instance.to_dict()
+# create an instance of RouteAggregationRuleAndExpression from a dict
+route_aggregation_rule_and_expression_from_dict = RouteAggregationRuleAndExpression.from_dict(route_aggregation_rule_and_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleExpression.md b/equinix/services/fabricv4/docs/RouteAggregationRuleExpression.md
new file mode 100644
index 00000000..f67bd99c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleExpression.md
@@ -0,0 +1,34 @@
+# RouteAggregationRuleExpression
+
+Filter expression that can be AND, OR, or a simple expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+**var_or** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+**var_property** | **str** | 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** | **str** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rule_expression import RouteAggregationRuleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRuleExpression from a JSON string
+route_aggregation_rule_expression_instance = RouteAggregationRuleExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRuleExpression.to_json())
+
+# convert the object into a dict
+route_aggregation_rule_expression_dict = route_aggregation_rule_expression_instance.to_dict()
+# create an instance of RouteAggregationRuleExpression from a dict
+route_aggregation_rule_expression_from_dict = RouteAggregationRuleExpression.from_dict(route_aggregation_rule_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleOrExpression.md b/equinix/services/fabricv4/docs/RouteAggregationRuleOrExpression.md
new file mode 100644
index 00000000..2644415a
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleOrExpression.md
@@ -0,0 +1,30 @@
+# RouteAggregationRuleOrExpression
+
+OR expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_or** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rule_or_expression import RouteAggregationRuleOrExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRuleOrExpression from a JSON string
+route_aggregation_rule_or_expression_instance = RouteAggregationRuleOrExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRuleOrExpression.to_json())
+
+# convert the object into a dict
+route_aggregation_rule_or_expression_dict = route_aggregation_rule_or_expression_instance.to_dict()
+# create an instance of RouteAggregationRuleOrExpression from a dict
+route_aggregation_rule_or_expression_from_dict = RouteAggregationRuleOrExpression.from_dict(route_aggregation_rule_or_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md b/equinix/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md
new file mode 100644
index 00000000..22533a70
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md
@@ -0,0 +1,32 @@
+# RouteAggregationRuleSimpleExpression
+
+Simple filter expression with property, operator, and values
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | **str** | 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** | **str** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rule_simple_expression import RouteAggregationRuleSimpleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRuleSimpleExpression from a JSON string
+route_aggregation_rule_simple_expression_instance = RouteAggregationRuleSimpleExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRuleSimpleExpression.to_json())
+
+# convert the object into a dict
+route_aggregation_rule_simple_expression_dict = route_aggregation_rule_simple_expression_instance.to_dict()
+# create an instance of RouteAggregationRuleSimpleExpression from a dict
+route_aggregation_rule_simple_expression_from_dict = RouteAggregationRuleSimpleExpression.from_dict(route_aggregation_rule_simple_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleSortBy.md b/equinix/services/fabricv4/docs/RouteAggregationRuleSortBy.md
new file mode 100644
index 00000000..f5261a29
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleSortBy.md
@@ -0,0 +1,23 @@
+# RouteAggregationRuleSortBy
+
+Possible field names to use on sorting
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_UUID` (value: `'/uuid'`)
+
+* `SLASH_NAME` (value: `'/name'`)
+
+* `SLASH_STATE` (value: `'/state'`)
+
+* `SLASH_PREFIX` (value: `'/prefix'`)
+
+* `SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME` (value: `'/changeLog/createdDateTime'`)
+
+* `SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME` (value: `'/changeLog/updatedDateTime'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md b/equinix/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md
new file mode 100644
index 00000000..fc1cb309
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md
@@ -0,0 +1,30 @@
+# RouteAggregationRuleSortCriteria
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**RouteAggregationRuleSortDirection**](RouteAggregationRuleSortDirection.md) | | [optional] [default to RouteAggregationRuleSortDirection.DESC]
+**var_property** | [**RouteAggregationRuleSortBy**](RouteAggregationRuleSortBy.md) | | [optional] [default to RouteAggregationRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_criteria import RouteAggregationRuleSortCriteria
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRuleSortCriteria from a JSON string
+route_aggregation_rule_sort_criteria_instance = RouteAggregationRuleSortCriteria.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRuleSortCriteria.to_json())
+
+# convert the object into a dict
+route_aggregation_rule_sort_criteria_dict = route_aggregation_rule_sort_criteria_instance.to_dict()
+# create an instance of RouteAggregationRuleSortCriteria from a dict
+route_aggregation_rule_sort_criteria_from_dict = RouteAggregationRuleSortCriteria.from_dict(route_aggregation_rule_sort_criteria_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRuleSortDirection.md b/equinix/services/fabricv4/docs/RouteAggregationRuleSortDirection.md
new file mode 100644
index 00000000..d26bb48f
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRuleSortDirection.md
@@ -0,0 +1,13 @@
+# RouteAggregationRuleSortDirection
+
+Sorting direction
+
+## Enum
+
+* `DESC` (value: `'DESC'`)
+
+* `ASC` (value: `'ASC'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRulesApi.md b/equinix/services/fabricv4/docs/RouteAggregationRulesApi.md
index a2e9f75b..cd1dfa49 100644
--- a/equinix/services/fabricv4/docs/RouteAggregationRulesApi.md
+++ b/equinix/services/fabricv4/docs/RouteAggregationRulesApi.md
@@ -13,6 +13,7 @@ Method | HTTP request | Description
[**get_route_aggregation_rules**](RouteAggregationRulesApi.md#get_route_aggregation_rules) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | GetRARules
[**patch_route_aggregation_rule_by_uuid**](RouteAggregationRulesApi.md#patch_route_aggregation_rule_by_uuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | PatchRARule
[**replace_route_aggregation_rule_by_uuid**](RouteAggregationRulesApi.md#replace_route_aggregation_rule_by_uuid) | **PUT** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | ReplaceRARule
+[**search_route_aggregation_rules**](RouteAggregationRulesApi.md#search_route_aggregation_rules) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search | Search Route Aggregation Rules
# **create_route_aggregation_rule**
@@ -802,3 +803,90 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **search_route_aggregation_rules**
+> RouteAggregationRulesSearchResponse search_route_aggregation_rules(route_aggregation_id, route_aggregation_rules_search_request)
+
+Search Route Aggregation Rules
+
+This API provides capability to search Route Aggregation Rules
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.route_aggregation_rules_search_request import RouteAggregationRulesSearchRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_response import RouteAggregationRulesSearchResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.RouteAggregationRulesApi(api_client)
+ route_aggregation_id = 'route_aggregation_id_example' # str | Route Aggregations Id
+ route_aggregation_rules_search_request = equinix.services.fabricv4.RouteAggregationRulesSearchRequest() # RouteAggregationRulesSearchRequest |
+
+ try:
+ # Search Route Aggregation Rules
+ api_response = api_instance.search_route_aggregation_rules(route_aggregation_id, route_aggregation_rules_search_request)
+ print("The response of RouteAggregationRulesApi->search_route_aggregation_rules:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling RouteAggregationRulesApi->search_route_aggregation_rules: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **route_aggregation_id** | **str**| Route Aggregations Id |
+ **route_aggregation_rules_search_request** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRulesFilter.md b/equinix/services/fabricv4/docs/RouteAggregationRulesFilter.md
new file mode 100644
index 00000000..e9575cdc
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRulesFilter.md
@@ -0,0 +1,31 @@
+# RouteAggregationRulesFilter
+
+Top-level filter that can be either an AND expression or OR expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+**var_or** | [**List[RouteAggregationRuleExpression]**](RouteAggregationRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rules_filter import RouteAggregationRulesFilter
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRulesFilter from a JSON string
+route_aggregation_rules_filter_instance = RouteAggregationRulesFilter.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRulesFilter.to_json())
+
+# convert the object into a dict
+route_aggregation_rules_filter_dict = route_aggregation_rules_filter_instance.to_dict()
+# create an instance of RouteAggregationRulesFilter from a dict
+route_aggregation_rules_filter_from_dict = RouteAggregationRulesFilter.from_dict(route_aggregation_rules_filter_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md b/equinix/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md
new file mode 100644
index 00000000..272237f2
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md
@@ -0,0 +1,32 @@
+# 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]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rules_search_request import RouteAggregationRulesSearchRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRulesSearchRequest from a JSON string
+route_aggregation_rules_search_request_instance = RouteAggregationRulesSearchRequest.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRulesSearchRequest.to_json())
+
+# convert the object into a dict
+route_aggregation_rules_search_request_dict = route_aggregation_rules_search_request_instance.to_dict()
+# create an instance of RouteAggregationRulesSearchRequest from a dict
+route_aggregation_rules_search_request_from_dict = RouteAggregationRulesSearchRequest.from_dict(route_aggregation_rules_search_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md b/equinix/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md
new file mode 100644
index 00000000..3a8a75f2
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md
@@ -0,0 +1,30 @@
+# RouteAggregationRulesSearchResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[RouteAggregationRulesData]**](RouteAggregationRulesData.md) | List of route aggregation rules | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_aggregation_rules_search_response import RouteAggregationRulesSearchResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteAggregationRulesSearchResponse from a JSON string
+route_aggregation_rules_search_response_instance = RouteAggregationRulesSearchResponse.from_json(json)
+# print the JSON string representation of the object
+print(RouteAggregationRulesSearchResponse.to_json())
+
+# convert the object into a dict
+route_aggregation_rules_search_response_dict = route_aggregation_rules_search_response_instance.to_dict()
+# create an instance of RouteAggregationRulesSearchResponse from a dict
+route_aggregation_rules_search_response_from_dict = RouteAggregationRulesSearchResponse.from_dict(route_aggregation_rules_search_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteAggregationsApi.md b/equinix/services/fabricv4/docs/RouteAggregationsApi.md
index 182ae2f7..e4bf3a59 100644
--- a/equinix/services/fabricv4/docs/RouteAggregationsApi.md
+++ b/equinix/services/fabricv4/docs/RouteAggregationsApi.md
@@ -15,6 +15,7 @@ Method | HTTP request | Description
[**get_route_aggregation_changes**](RouteAggregationsApi.md#get_route_aggregation_changes) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes | Get All Changes
[**get_route_aggregation_connections**](RouteAggregationsApi.md#get_route_aggregation_connections) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/connections | Get All Connections on Route Aggregation
[**patch_route_aggregation_by_uuid**](RouteAggregationsApi.md#patch_route_aggregation_by_uuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId} | Patch Aggregation
+[**search_cloud_router_route_aggregation_attachments**](RouteAggregationsApi.md#search_cloud_router_route_aggregation_attachments) | **POST** /fabric/v4/routers/{routerId}/routeAggregations/search | Search Cloud Router Route Aggregation Attachments
[**search_route_aggregations**](RouteAggregationsApi.md#search_route_aggregations) | **POST** /fabric/v4/routeAggregations/search | Search Aggregations
@@ -956,6 +957,93 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **search_cloud_router_route_aggregation_attachments**
+> CloudRouterRouteAggregationsSearchResponse search_cloud_router_route_aggregation_attachments(router_id, cloud_router_route_aggregations_search_base)
+
+Search Cloud Router Route Aggregation Attachments
+
+This API provides capability to search route aggregation attachments for a given cloud router Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_base import CloudRouterRouteAggregationsSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_response import CloudRouterRouteAggregationsSearchResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.RouteAggregationsApi(api_client)
+ router_id = 'router_id_example' # str | Cloud Router UUID
+ cloud_router_route_aggregations_search_base = equinix.services.fabricv4.CloudRouterRouteAggregationsSearchBase() # CloudRouterRouteAggregationsSearchBase |
+
+ try:
+ # Search Cloud Router Route Aggregation Attachments
+ api_response = api_instance.search_cloud_router_route_aggregation_attachments(router_id, cloud_router_route_aggregations_search_base)
+ print("The response of RouteAggregationsApi->search_cloud_router_route_aggregation_attachments:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling RouteAggregationsApi->search_cloud_router_route_aggregation_attachments: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **router_id** | **str**| Cloud Router UUID |
+ **cloud_router_route_aggregations_search_base** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **search_route_aggregations**
> RouteAggregationsSearchResponse search_route_aggregations(route_aggregations_search_base)
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleAndExpression.md b/equinix/services/fabricv4/docs/RouteFilterRuleAndExpression.md
new file mode 100644
index 00000000..2f1f3c7f
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleAndExpression.md
@@ -0,0 +1,30 @@
+# RouteFilterRuleAndExpression
+
+AND expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rule_and_expression import RouteFilterRuleAndExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRuleAndExpression from a JSON string
+route_filter_rule_and_expression_instance = RouteFilterRuleAndExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRuleAndExpression.to_json())
+
+# convert the object into a dict
+route_filter_rule_and_expression_dict = route_filter_rule_and_expression_instance.to_dict()
+# create an instance of RouteFilterRuleAndExpression from a dict
+route_filter_rule_and_expression_from_dict = RouteFilterRuleAndExpression.from_dict(route_filter_rule_and_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleExpression.md b/equinix/services/fabricv4/docs/RouteFilterRuleExpression.md
new file mode 100644
index 00000000..9cbac051
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleExpression.md
@@ -0,0 +1,34 @@
+# RouteFilterRuleExpression
+
+Filter expression that can be AND, OR, or a simple expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+**var_or** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+**var_property** | **str** | 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** | **str** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rule_expression import RouteFilterRuleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRuleExpression from a JSON string
+route_filter_rule_expression_instance = RouteFilterRuleExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRuleExpression.to_json())
+
+# convert the object into a dict
+route_filter_rule_expression_dict = route_filter_rule_expression_instance.to_dict()
+# create an instance of RouteFilterRuleExpression from a dict
+route_filter_rule_expression_from_dict = RouteFilterRuleExpression.from_dict(route_filter_rule_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleOrExpression.md b/equinix/services/fabricv4/docs/RouteFilterRuleOrExpression.md
new file mode 100644
index 00000000..056ab2ca
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleOrExpression.md
@@ -0,0 +1,30 @@
+# RouteFilterRuleOrExpression
+
+OR expression containing multiple filter expressions
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_or** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rule_or_expression import RouteFilterRuleOrExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRuleOrExpression from a JSON string
+route_filter_rule_or_expression_instance = RouteFilterRuleOrExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRuleOrExpression.to_json())
+
+# convert the object into a dict
+route_filter_rule_or_expression_dict = route_filter_rule_or_expression_instance.to_dict()
+# create an instance of RouteFilterRuleOrExpression from a dict
+route_filter_rule_or_expression_from_dict = RouteFilterRuleOrExpression.from_dict(route_filter_rule_or_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md b/equinix/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md
new file mode 100644
index 00000000..48757cc9
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md
@@ -0,0 +1,32 @@
+# RouteFilterRuleSimpleExpression
+
+Simple filter expression with property, operator, and values
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_property** | **str** | 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** | **str** | Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like | [optional]
+**values** | **List[str]** | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rule_simple_expression import RouteFilterRuleSimpleExpression
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRuleSimpleExpression from a JSON string
+route_filter_rule_simple_expression_instance = RouteFilterRuleSimpleExpression.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRuleSimpleExpression.to_json())
+
+# convert the object into a dict
+route_filter_rule_simple_expression_dict = route_filter_rule_simple_expression_instance.to_dict()
+# create an instance of RouteFilterRuleSimpleExpression from a dict
+route_filter_rule_simple_expression_from_dict = RouteFilterRuleSimpleExpression.from_dict(route_filter_rule_simple_expression_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleSortBy.md b/equinix/services/fabricv4/docs/RouteFilterRuleSortBy.md
new file mode 100644
index 00000000..0c818423
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleSortBy.md
@@ -0,0 +1,25 @@
+# RouteFilterRuleSortBy
+
+Possible field names to use on sorting
+
+## Enum
+
+* `SLASH_TYPE` (value: `'/type'`)
+
+* `SLASH_UUID` (value: `'/uuid'`)
+
+* `SLASH_NAME` (value: `'/name'`)
+
+* `SLASH_STATE` (value: `'/state'`)
+
+* `SLASH_PREFIX` (value: `'/prefix'`)
+
+* `SLASH_PREFIX_MATCH` (value: `'/prefixMatch'`)
+
+* `SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME` (value: `'/changeLog/createdDateTime'`)
+
+* `SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME` (value: `'/changeLog/updatedDateTime'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleSortCriteria.md b/equinix/services/fabricv4/docs/RouteFilterRuleSortCriteria.md
new file mode 100644
index 00000000..6bbbd574
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleSortCriteria.md
@@ -0,0 +1,30 @@
+# RouteFilterRuleSortCriteria
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direction** | [**RouteFilterRuleSortDirection**](RouteFilterRuleSortDirection.md) | | [optional] [default to RouteFilterRuleSortDirection.DESC]
+**var_property** | [**RouteFilterRuleSortBy**](RouteFilterRuleSortBy.md) | | [optional] [default to RouteFilterRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rule_sort_criteria import RouteFilterRuleSortCriteria
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRuleSortCriteria from a JSON string
+route_filter_rule_sort_criteria_instance = RouteFilterRuleSortCriteria.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRuleSortCriteria.to_json())
+
+# convert the object into a dict
+route_filter_rule_sort_criteria_dict = route_filter_rule_sort_criteria_instance.to_dict()
+# create an instance of RouteFilterRuleSortCriteria from a dict
+route_filter_rule_sort_criteria_from_dict = RouteFilterRuleSortCriteria.from_dict(route_filter_rule_sort_criteria_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRuleSortDirection.md b/equinix/services/fabricv4/docs/RouteFilterRuleSortDirection.md
new file mode 100644
index 00000000..c8683000
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRuleSortDirection.md
@@ -0,0 +1,13 @@
+# RouteFilterRuleSortDirection
+
+Sorting direction
+
+## Enum
+
+* `DESC` (value: `'DESC'`)
+
+* `ASC` (value: `'ASC'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRulesApi.md b/equinix/services/fabricv4/docs/RouteFilterRulesApi.md
index 083b0591..eea672bd 100644
--- a/equinix/services/fabricv4/docs/RouteFilterRulesApi.md
+++ b/equinix/services/fabricv4/docs/RouteFilterRulesApi.md
@@ -13,6 +13,7 @@ Method | HTTP request | Description
[**get_route_filter_rules**](RouteFilterRulesApi.md#get_route_filter_rules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Get Route Filter Rules
[**patch_route_filter_rule_by_uuid**](RouteFilterRulesApi.md#patch_route_filter_rule_by_uuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Patch Route Filter Rule
[**replace_route_filter_rule_by_uuid**](RouteFilterRulesApi.md#replace_route_filter_rule_by_uuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Replace Route Filter Rule
+[**search_route_filter_rules**](RouteFilterRulesApi.md#search_route_filter_rules) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search | Search Route Filter Rules
# **create_route_filter_rule**
@@ -802,3 +803,90 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **search_route_filter_rules**
+> RouteFilterRulesSearchResponse search_route_filter_rules(route_filter_id, route_filter_rules_search_request)
+
+Search Route Filter Rules
+
+This API provides capability to search Route Filter Rules
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.route_filter_rules_search_request import RouteFilterRulesSearchRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_response import RouteFilterRulesSearchResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.RouteFilterRulesApi(api_client)
+ route_filter_id = 'route_filter_id_example' # str | Route Filters Id
+ route_filter_rules_search_request = equinix.services.fabricv4.RouteFilterRulesSearchRequest() # RouteFilterRulesSearchRequest |
+
+ try:
+ # Search Route Filter Rules
+ api_response = api_instance.search_route_filter_rules(route_filter_id, route_filter_rules_search_request)
+ print("The response of RouteFilterRulesApi->search_route_filter_rules:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling RouteFilterRulesApi->search_route_filter_rules: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **route_filter_id** | **str**| Route Filters Id |
+ **route_filter_rules_search_request** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRulesFilter.md b/equinix/services/fabricv4/docs/RouteFilterRulesFilter.md
new file mode 100644
index 00000000..5ad52150
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRulesFilter.md
@@ -0,0 +1,31 @@
+# RouteFilterRulesFilter
+
+Top-level filter that can be either an AND expression or OR expression
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**var_and** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+**var_or** | [**List[RouteFilterRuleExpression]**](RouteFilterRuleExpression.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rules_filter import RouteFilterRulesFilter
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRulesFilter from a JSON string
+route_filter_rules_filter_instance = RouteFilterRulesFilter.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRulesFilter.to_json())
+
+# convert the object into a dict
+route_filter_rules_filter_dict = route_filter_rules_filter_instance.to_dict()
+# create an instance of RouteFilterRulesFilter from a dict
+route_filter_rules_filter_from_dict = RouteFilterRulesFilter.from_dict(route_filter_rules_filter_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRulesSearchRequest.md b/equinix/services/fabricv4/docs/RouteFilterRulesSearchRequest.md
new file mode 100644
index 00000000..63e72e50
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRulesSearchRequest.md
@@ -0,0 +1,32 @@
+# 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]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rules_search_request import RouteFilterRulesSearchRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRulesSearchRequest from a JSON string
+route_filter_rules_search_request_instance = RouteFilterRulesSearchRequest.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRulesSearchRequest.to_json())
+
+# convert the object into a dict
+route_filter_rules_search_request_dict = route_filter_rules_search_request_instance.to_dict()
+# create an instance of RouteFilterRulesSearchRequest from a dict
+route_filter_rules_search_request_from_dict = RouteFilterRulesSearchRequest.from_dict(route_filter_rules_search_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFilterRulesSearchResponse.md b/equinix/services/fabricv4/docs/RouteFilterRulesSearchResponse.md
new file mode 100644
index 00000000..c0e5c58c
--- /dev/null
+++ b/equinix/services/fabricv4/docs/RouteFilterRulesSearchResponse.md
@@ -0,0 +1,30 @@
+# RouteFilterRulesSearchResponse
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**pagination** | [**Pagination**](Pagination.md) | | [optional]
+**data** | [**List[RouteFilterRulesData]**](RouteFilterRulesData.md) | List of route filter rules | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.route_filter_rules_search_response import RouteFilterRulesSearchResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of RouteFilterRulesSearchResponse from a JSON string
+route_filter_rules_search_response_instance = RouteFilterRulesSearchResponse.from_json(json)
+# print the JSON string representation of the object
+print(RouteFilterRulesSearchResponse.to_json())
+
+# convert the object into a dict
+route_filter_rules_search_response_dict = route_filter_rules_search_response_instance.to_dict()
+# create an instance of RouteFilterRulesSearchResponse from a dict
+route_filter_rules_search_response_from_dict = RouteFilterRulesSearchResponse.from_dict(route_filter_rules_search_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/RouteFiltersApi.md b/equinix/services/fabricv4/docs/RouteFiltersApi.md
index b63b758b..b1f7aae9 100644
--- a/equinix/services/fabricv4/docs/RouteFiltersApi.md
+++ b/equinix/services/fabricv4/docs/RouteFiltersApi.md
@@ -15,6 +15,7 @@ Method | HTTP request | Description
[**get_route_filter_changes**](RouteFiltersApi.md#get_route_filter_changes) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes | Get All Changes
[**get_route_filter_connections**](RouteFiltersApi.md#get_route_filter_connections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get All Connections on Route Filter
[**patch_route_filter_by_uuid**](RouteFiltersApi.md#patch_route_filter_by_uuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter
+[**search_cloud_router_route_filter_attachments**](RouteFiltersApi.md#search_cloud_router_route_filter_attachments) | **POST** /fabric/v4/routers/{routerId}/routeFilters/search | Search Cloud Router Route Filter Attachments
[**search_route_filters**](RouteFiltersApi.md#search_route_filters) | **POST** /fabric/v4/routeFilters/search | Search Route Filters
@@ -959,6 +960,93 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **search_cloud_router_route_filter_attachments**
+> CloudRouterRouteFiltersSearchResponse search_cloud_router_route_filter_attachments(router_id, cloud_router_route_filters_search_base)
+
+Search Cloud Router Route Filter Attachments
+
+This API provides capability to search route filter attachments for a given cloud router Beta
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_base import CloudRouterRouteFiltersSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_response import CloudRouterRouteFiltersSearchResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.RouteFiltersApi(api_client)
+ router_id = 'router_id_example' # str | Cloud Router UUID
+ cloud_router_route_filters_search_base = equinix.services.fabricv4.CloudRouterRouteFiltersSearchBase() # CloudRouterRouteFiltersSearchBase |
+
+ try:
+ # Search Cloud Router Route Filter Attachments
+ api_response = api_instance.search_cloud_router_route_filter_attachments(router_id, cloud_router_route_filters_search_base)
+ print("The response of RouteFiltersApi->search_cloud_router_route_filter_attachments:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling RouteFiltersApi->search_cloud_router_route_filter_attachments: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **router_id** | **str**| Cloud Router UUID |
+ **cloud_router_route_filters_search_base** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **search_route_filters**
> RouteFiltersSearchResponse search_route_filters(route_filters_search_base)
diff --git a/equinix/services/fabricv4/docs/SearchFieldName.md b/equinix/services/fabricv4/docs/SearchFieldName.md
index bd52b6ce..8edfed34 100644
--- a/equinix/services/fabricv4/docs/SearchFieldName.md
+++ b/equinix/services/fabricv4/docs/SearchFieldName.md
@@ -22,10 +22,6 @@ Possible field names to use on filters
* `SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_ROUTER_SLASH_UUID` (value: `'/aSide/accessPoint/router/uuid'`)
-* `SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG` (value: `'/aSide/accessPoint/linkProtocol/vlanCTag'`)
-
-* `SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG` (value: `'/aSide/accessPoint/linkProtocol/vlanSTag'`)
-
* `SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MIN` (value: `'/aSide/accessPoint/linkProtocol/vlanTagMin'`)
* `SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MAX` (value: `'/aSide/accessPoint/linkProtocol/vlanTagMax'`)
@@ -48,8 +44,14 @@ Possible field names to use on filters
* `SLASH_A_SIDE_SLASH_SERVICE_TOKEN_SLASH_UUID` (value: `'/aSide/serviceToken/uuid'`)
+* `SLASH_BANDWIDTH` (value: `'/bandwidth'`)
+
* `SLASH_CHANGE_SLASH_STATUS` (value: `'/change/status'`)
+* `SLASH_CHANGE_LOG_SLASH_CREATED_BY` (value: `'/changeLog/createdBy'`)
+
+* `SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME` (value: `'/changeLog/createdDateTime'`)
+
* `SLASH_OPERATION_SLASH_EQUINIX_STATUS` (value: `'/operation/equinixStatus'`)
* `SLASH_OPERATION_SLASH_PROVIDER_STATUS` (value: `'/operation/providerStatus'`)
@@ -64,10 +66,6 @@ Possible field names to use on filters
* `SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_AUTHENTICATION_KEY` (value: `'/zSide/accessPoint/authenticationKey'`)
-* `SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG` (value: `'/zSide/accessPoint/linkProtocol/vlanCTag'`)
-
-* `SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG` (value: `'/zSide/accessPoint/linkProtocol/vlanSTag'`)
-
* `SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MIN` (value: `'/zSide/accessPoint/linkProtocol/vlanTagMin'`)
* `SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MAX` (value: `'/zSide/accessPoint/linkProtocol/vlanTagMax'`)
diff --git a/equinix/services/fabricv4/docs/ServiceProfile.md b/equinix/services/fabricv4/docs/ServiceProfile.md
index aae1cc22..1711758e 100644
--- a/equinix/services/fabricv4/docs/ServiceProfile.md
+++ b/equinix/services/fabricv4/docs/ServiceProfile.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
**state** | [**ServiceProfileStateEnum**](ServiceProfileStateEnum.md) | | [optional]
**account** | [**SimplifiedAccount**](SimplifiedAccount.md) | Seller Account for Service Profile. | [optional]
**project** | [**Project**](Project.md) | | [optional]
+**change** | [**ServiceProfileChange**](ServiceProfileChange.md) | | [optional]
**change_log** | [**Changelog**](Changelog.md) | Seller Account for Service Profile. | [optional]
**href** | **str** | Service Profile URI response attribute | [optional] [readonly]
**type** | [**ServiceProfileTypeEnum**](ServiceProfileTypeEnum.md) | | [optional]
diff --git a/equinix/services/fabricv4/docs/ServiceProfileActionRequest.md b/equinix/services/fabricv4/docs/ServiceProfileActionRequest.md
new file mode 100644
index 00000000..de311c42
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ServiceProfileActionRequest.md
@@ -0,0 +1,31 @@
+# ServiceProfileActionRequest
+
+Service Profile Action Request
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **str** | Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION |
+**description** | **str** | Action description | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.service_profile_action_request import ServiceProfileActionRequest
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServiceProfileActionRequest from a JSON string
+service_profile_action_request_instance = ServiceProfileActionRequest.from_json(json)
+# print the JSON string representation of the object
+print(ServiceProfileActionRequest.to_json())
+
+# convert the object into a dict
+service_profile_action_request_dict = service_profile_action_request_instance.to_dict()
+# create an instance of ServiceProfileActionRequest from a dict
+service_profile_action_request_from_dict = ServiceProfileActionRequest.from_dict(service_profile_action_request_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ServiceProfileActionResponse.md b/equinix/services/fabricv4/docs/ServiceProfileActionResponse.md
new file mode 100644
index 00000000..41bfc896
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ServiceProfileActionResponse.md
@@ -0,0 +1,34 @@
+# ServiceProfileActionResponse
+
+Service Profile Action Response
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**href** | **str** | Service Profile Action URI | [optional] [readonly]
+**type** | **str** | Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION | [optional]
+**uuid** | **str** | Equinix-assigned action identifier | [optional]
+**comments** | **str** | Action comments | [optional]
+**change_log** | [**Changelog**](Changelog.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.service_profile_action_response import ServiceProfileActionResponse
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServiceProfileActionResponse from a JSON string
+service_profile_action_response_instance = ServiceProfileActionResponse.from_json(json)
+# print the JSON string representation of the object
+print(ServiceProfileActionResponse.to_json())
+
+# convert the object into a dict
+service_profile_action_response_dict = service_profile_action_response_instance.to_dict()
+# create an instance of ServiceProfileActionResponse from a dict
+service_profile_action_response_from_dict = ServiceProfileActionResponse.from_dict(service_profile_action_response_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ServiceProfileChange.md b/equinix/services/fabricv4/docs/ServiceProfileChange.md
new file mode 100644
index 00000000..f3e44776
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ServiceProfileChange.md
@@ -0,0 +1,36 @@
+# ServiceProfileChange
+
+Current state of latest service profile change
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **str** | Uniquely identifies a change | [optional]
+**type** | **str** | Type of change |
+**status** | [**ServiceProfileChangeStatus**](ServiceProfileChangeStatus.md) | | [optional]
+**created_date_time** | **datetime** | Set when change flow starts |
+**updated_date_time** | **datetime** | Set when change object is updated | [optional]
+**information** | **str** | Additional information | [optional]
+**data** | [**List[JsonPatchOperation]**](JsonPatchOperation.md) | | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.service_profile_change import ServiceProfileChange
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ServiceProfileChange from a JSON string
+service_profile_change_instance = ServiceProfileChange.from_json(json)
+# print the JSON string representation of the object
+print(ServiceProfileChange.to_json())
+
+# convert the object into a dict
+service_profile_change_dict = service_profile_change_instance.to_dict()
+# create an instance of ServiceProfileChange from a dict
+service_profile_change_from_dict = ServiceProfileChange.from_dict(service_profile_change_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/docs/ChangeStatus.md b/equinix/services/fabricv4/docs/ServiceProfileChangeStatus.md
similarity index 93%
rename from equinix/services/fabricv4/docs/ChangeStatus.md
rename to equinix/services/fabricv4/docs/ServiceProfileChangeStatus.md
index 46661d67..af2a7a81 100644
--- a/equinix/services/fabricv4/docs/ChangeStatus.md
+++ b/equinix/services/fabricv4/docs/ServiceProfileChangeStatus.md
@@ -1,4 +1,4 @@
-# ChangeStatus
+# ServiceProfileChangeStatus
Current outcome of the change flow
diff --git a/equinix/services/fabricv4/docs/ServiceProfilesApi.md b/equinix/services/fabricv4/docs/ServiceProfilesApi.md
index ada5ab0e..72698087 100644
--- a/equinix/services/fabricv4/docs/ServiceProfilesApi.md
+++ b/equinix/services/fabricv4/docs/ServiceProfilesApi.md
@@ -5,6 +5,7 @@ All URIs are relative to *https://api.equinix.com*
Method | HTTP request | Description
------------- | ------------- | -------------
[**create_service_profile**](ServiceProfilesApi.md#create_service_profile) | **POST** /fabric/v4/serviceProfiles | Create Profile
+[**create_service_profile_action**](ServiceProfilesApi.md#create_service_profile_action) | **POST** /fabric/v4/serviceProfiles/{serviceProfileId}/actions | Profile Actions
[**delete_service_profile_by_uuid**](ServiceProfilesApi.md#delete_service_profile_by_uuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile
[**get_service_profile_by_uuid**](ServiceProfilesApi.md#get_service_profile_by_uuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile
[**get_service_profile_metros_by_uuid**](ServiceProfilesApi.md#get_service_profile_metros_by_uuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros
@@ -97,6 +98,92 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+# **create_service_profile_action**
+> ServiceProfileActionResponse create_service_profile_action(service_profile_id, service_profile_action_request)
+
+Profile Actions
+
+This API provides capability to accept/reject service profile update requests
+
+### Example
+
+* Bearer (JWT) Authentication (BearerAuth):
+
+```python
+import equinix.services.fabricv4
+from equinix.services.fabricv4.models.service_profile_action_request import ServiceProfileActionRequest
+from equinix.services.fabricv4.models.service_profile_action_response import ServiceProfileActionResponse
+from equinix.services.fabricv4.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.equinix.com
+# See configuration.py for a list of all supported configuration parameters.
+configuration = equinix.services.fabricv4.Configuration(
+ host = "https://api.equinix.com"
+)
+
+# The client must configure the authentication and authorization parameters
+# in accordance with the API server security policy.
+# Examples for each auth method are provided below, use the example that
+# satisfies your auth use case.
+
+# Configure Bearer authorization (JWT): BearerAuth
+configuration = equinix.services.fabricv4.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with equinix.services.fabricv4.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = equinix.services.fabricv4.ServiceProfilesApi(api_client)
+ service_profile_id = 'service_profile_id_example' # str | Service Profile UUID
+ service_profile_action_request = equinix.services.fabricv4.ServiceProfileActionRequest() # ServiceProfileActionRequest |
+
+ try:
+ # Profile Actions
+ api_response = api_instance.create_service_profile_action(service_profile_id, service_profile_action_request)
+ print("The response of ServiceProfilesApi->create_service_profile_action:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ServiceProfilesApi->create_service_profile_action: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **service_profile_id** | **str**| Service Profile UUID |
+ **service_profile_action_request** | [**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 | - |
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
# **delete_service_profile_by_uuid**
> ServiceProfile delete_service_profile_by_uuid(service_profile_id)
@@ -612,7 +699,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **update_service_profile_by_uuid**
-> ServiceProfile update_service_profile_by_uuid(service_profile_id, if_match, json_patch_operation)
+> ServiceProfile update_service_profile_by_uuid(service_profile_id, json_patch_operation)
Update Profile
@@ -650,12 +737,11 @@ with equinix.services.fabricv4.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = equinix.services.fabricv4.ServiceProfilesApi(api_client)
service_profile_id = 'service_profile_id_example' # str | Service Profile UUID
- if_match = 'if_match_example' # str | conditional request
json_patch_operation = [equinix.services.fabricv4.JsonPatchOperation()] # List[JsonPatchOperation] |
try:
# Update Profile
- api_response = api_instance.update_service_profile_by_uuid(service_profile_id, if_match, json_patch_operation)
+ api_response = api_instance.update_service_profile_by_uuid(service_profile_id, json_patch_operation)
print("The response of ServiceProfilesApi->update_service_profile_by_uuid:\n")
pprint(api_response)
except Exception as e:
@@ -670,7 +756,6 @@ with equinix.services.fabricv4.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**service_profile_id** | **str**| Service Profile UUID |
- **if_match** | **str**| conditional request |
**json_patch_operation** | [**List[JsonPatchOperation]**](JsonPatchOperation.md)| |
### Return type
@@ -695,7 +780,6 @@ Name | Type | Description | Notes
**401** | Unauthorized | - |
**403** | Forbidden | - |
**404** | Not Found | - |
-**412** | Precondition Failed | - |
**500** | Internal Server Error | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/ServiceTokenSearchExpression.md b/equinix/services/fabricv4/docs/ServiceTokenSearchExpression.md
index 4bb87344..49c93f75 100644
--- a/equinix/services/fabricv4/docs/ServiceTokenSearchExpression.md
+++ b/equinix/services/fabricv4/docs/ServiceTokenSearchExpression.md
@@ -6,6 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**var_and** | [**List[ServiceTokenSearchExpression]**](ServiceTokenSearchExpression.md) | | [optional]
+**var_or** | [**List[ServiceTokenSearchExpression]**](ServiceTokenSearchExpression.md) | | [optional]
**var_property** | [**ServiceTokenSearchFieldName**](ServiceTokenSearchFieldName.md) | | [optional]
**operator** | [**ServiceTokenSearchExpressionOperator**](ServiceTokenSearchExpressionOperator.md) | | [optional]
**values** | **List[str]** | | [optional]
diff --git a/equinix/services/fabricv4/docs/SimplifiedNotificationType.md b/equinix/services/fabricv4/docs/SimplifiedNotificationType.md
index cdb0210e..0d8b6aa2 100644
--- a/equinix/services/fabricv4/docs/SimplifiedNotificationType.md
+++ b/equinix/services/fabricv4/docs/SimplifiedNotificationType.md
@@ -16,6 +16,10 @@ Notification Type
* `SALES_REP_NOTIFICATIONS` (value: `'SALES_REP_NOTIFICATIONS'`)
+* `TECHNICAL` (value: `'TECHNICAL'`)
+
+* `ORDERING` (value: `'ORDERING'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/equinix/services/fabricv4/docs/Sort.md b/equinix/services/fabricv4/docs/Sort.md
index 75c6b426..05fc0be5 100644
--- a/equinix/services/fabricv4/docs/Sort.md
+++ b/equinix/services/fabricv4/docs/Sort.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**var_property** | **str** | Property to sort by | [optional]
+**var_property** | **str** | Property to sort by((currently supports tags with filter syntax) | [optional]
**direction** | [**CompanyProfileSortDirection**](CompanyProfileSortDirection.md) | | [optional] [default to CompanyProfileSortDirection.ASC]
## Example
diff --git a/equinix/services/fabricv4/docs/StreamAlertRulesApi.md b/equinix/services/fabricv4/docs/StreamAlertRulesApi.md
index 2d10fda0..d1d251f3 100644
--- a/equinix/services/fabricv4/docs/StreamAlertRulesApi.md
+++ b/equinix/services/fabricv4/docs/StreamAlertRulesApi.md
@@ -5,7 +5,7 @@ All URIs are relative to *https://api.equinix.com*
Method | HTTP request | Description
------------- | ------------- | -------------
[**create_stream_alert_rules**](StreamAlertRulesApi.md#create_stream_alert_rules) | **POST** /fabric/v4/streams/{streamId}/alertRules | Create Stream Alert Rules
-[**delete_stream_alert_rule_by_uuid**](StreamAlertRulesApi.md#delete_stream_alert_rule_by_uuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules
+[**delete_stream_alert_rule_by_uuid**](StreamAlertRulesApi.md#delete_stream_alert_rule_by_uuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Delete Stream Alert Rules
[**get_stream_alert_rule_by_uuid**](StreamAlertRulesApi.md#get_stream_alert_rule_by_uuid) | **GET** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Get Stream Alert Rules
[**get_stream_alert_rules**](StreamAlertRulesApi.md#get_stream_alert_rules) | **GET** /fabric/v4/streams/{streamId}/alertRules | Get Stream Alert Rules
[**update_stream_alert_rule_by_uuid**](StreamAlertRulesApi.md#update_stream_alert_rule_by_uuid) | **PUT** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules
@@ -100,7 +100,7 @@ Name | Type | Description | Notes
# **delete_stream_alert_rule_by_uuid**
> StreamAlertRule delete_stream_alert_rule_by_uuid(stream_id, alert_rule_id)
-Update Stream Alert Rules
+Delete Stream Alert Rules
This API provides capability to delete a user's stream alert rule
@@ -138,7 +138,7 @@ with equinix.services.fabricv4.ApiClient(configuration) as api_client:
alert_rule_id = 'alert_rule_id_example' # str | alert rule UUID
try:
- # Update Stream Alert Rules
+ # Delete Stream Alert Rules
api_response = api_instance.delete_stream_alert_rule_by_uuid(stream_id, alert_rule_id)
print("The response of StreamAlertRulesApi->delete_stream_alert_rule_by_uuid:\n")
pprint(api_response)
diff --git a/equinix/services/fabricv4/docs/ToolCallInformationInner.md b/equinix/services/fabricv4/docs/ToolCallInformationInner.md
new file mode 100644
index 00000000..9bc38ecd
--- /dev/null
+++ b/equinix/services/fabricv4/docs/ToolCallInformationInner.md
@@ -0,0 +1,31 @@
+# ToolCallInformationInner
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Name of tools called | [optional]
+**input** | **str** | Content of the tool request | [optional]
+**response** | **str** | Content of the tool response | [optional]
+
+## Example
+
+```python
+from equinix.services.fabricv4.models.tool_call_information_inner import ToolCallInformationInner
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ToolCallInformationInner from a JSON string
+tool_call_information_inner_instance = ToolCallInformationInner.from_json(json)
+# print the JSON string representation of the object
+print(ToolCallInformationInner.to_json())
+
+# convert the object into a dict
+tool_call_information_inner_dict = tool_call_information_inner_instance.to_dict()
+# create an instance of ToolCallInformationInner from a dict
+tool_call_information_inner_from_dict = ToolCallInformationInner.from_dict(tool_call_information_inner_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/equinix/services/fabricv4/models/__init__.py b/equinix/services/fabricv4/models/__init__.py
index a715fcd9..0cb3cb63 100644
--- a/equinix/services/fabricv4/models/__init__.py
+++ b/equinix/services/fabricv4/models/__init__.py
@@ -17,6 +17,19 @@
from equinix.services.fabricv4.models.access_point_type import AccessPointType
from equinix.services.fabricv4.models.actions import Actions
from equinix.services.fabricv4.models.add_operation import AddOperation
+from equinix.services.fabricv4.models.agent import Agent
+from equinix.services.fabricv4.models.agent_activities import AgentActivities
+from equinix.services.fabricv4.models.agent_activities_metadata import AgentActivitiesMetadata
+from equinix.services.fabricv4.models.agent_definition import AgentDefinition
+from equinix.services.fabricv4.models.agent_get_activities import AgentGetActivities
+from equinix.services.fabricv4.models.agent_get_all_response import AgentGetAllResponse
+from equinix.services.fabricv4.models.agent_patch_request import AgentPatchRequest
+from equinix.services.fabricv4.models.agent_post_request import AgentPostRequest
+from equinix.services.fabricv4.models.agent_template import AgentTemplate
+from equinix.services.fabricv4.models.agent_template_get_all_response import AgentTemplateGetAllResponse
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+from equinix.services.fabricv4.models.agent_templates_state import AgentTemplatesState
+from equinix.services.fabricv4.models.agents import Agents
from equinix.services.fabricv4.models.alert_rule_post_request import AlertRulePostRequest
from equinix.services.fabricv4.models.alert_rule_post_request_type import AlertRulePostRequestType
from equinix.services.fabricv4.models.alert_rule_put_request import AlertRulePutRequest
@@ -48,9 +61,9 @@
from equinix.services.fabricv4.models.bulk_physical_port import BulkPhysicalPort
from equinix.services.fabricv4.models.bulk_port_request import BulkPortRequest
from equinix.services.fabricv4.models.change import Change
-from equinix.services.fabricv4.models.change_status import ChangeStatus
from equinix.services.fabricv4.models.change_type import ChangeType
from equinix.services.fabricv4.models.changelog import Changelog
+from equinix.services.fabricv4.models.chat_message import ChatMessage
from equinix.services.fabricv4.models.cloud_event import CloudEvent
from equinix.services.fabricv4.models.cloud_event_asset_type import CloudEventAssetType
from equinix.services.fabricv4.models.cloud_event_data import CloudEventData
@@ -105,6 +118,22 @@
from equinix.services.fabricv4.models.cloud_router_post_request_package import CloudRouterPostRequestPackage
from equinix.services.fabricv4.models.cloud_router_post_request_package_code import CloudRouterPostRequestPackageCode
from equinix.services.fabricv4.models.cloud_router_post_request_package_type import CloudRouterPostRequestPackageType
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_and_expression import CloudRouterRouteAggregationAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_expression import CloudRouterRouteAggregationExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_or_expression import CloudRouterRouteAggregationOrExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression import CloudRouterRouteAggregationSimpleExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression_property import CloudRouterRouteAggregationSimpleExpressionProperty
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_filter import CloudRouterRouteAggregationsFilter
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_base import CloudRouterRouteAggregationsSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_search_response import CloudRouterRouteAggregationsSearchResponse
+from equinix.services.fabricv4.models.cloud_router_route_filter_and_expression import CloudRouterRouteFilterAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_expression import CloudRouterRouteFilterExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_or_expression import CloudRouterRouteFilterOrExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression import CloudRouterRouteFilterSimpleExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression_property import CloudRouterRouteFilterSimpleExpressionProperty
+from equinix.services.fabricv4.models.cloud_router_route_filters_filter import CloudRouterRouteFiltersFilter
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_base import CloudRouterRouteFiltersSearchBase
+from equinix.services.fabricv4.models.cloud_router_route_filters_search_response import CloudRouterRouteFiltersSearchResponse
from equinix.services.fabricv4.models.cloud_router_search_request import CloudRouterSearchRequest
from equinix.services.fabricv4.models.cloud_router_simple_expression import CloudRouterSimpleExpression
from equinix.services.fabricv4.models.cloud_router_sort_by import CloudRouterSortBy
@@ -117,11 +146,13 @@
from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
from equinix.services.fabricv4.models.company_profile_request import CompanyProfileRequest
from equinix.services.fabricv4.models.company_profile_response import CompanyProfileResponse
+from equinix.services.fabricv4.models.company_profile_response_account import CompanyProfileResponseAccount
from equinix.services.fabricv4.models.company_profile_search_filter import CompanyProfileSearchFilter
from equinix.services.fabricv4.models.company_profile_search_request import CompanyProfileSearchRequest
from equinix.services.fabricv4.models.company_profile_search_response import CompanyProfileSearchResponse
from equinix.services.fabricv4.models.company_profile_sort_direction import CompanyProfileSortDirection
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
+from equinix.services.fabricv4.models.configuration import Configuration
from equinix.services.fabricv4.models.connected_metro import ConnectedMetro
from equinix.services.fabricv4.models.connection import Connection
from equinix.services.fabricv4.models.connection_acceptance_data import ConnectionAcceptanceData
@@ -234,6 +265,7 @@
from equinix.services.fabricv4.models.marketplace_subscription_type import MarketplaceSubscriptionType
from equinix.services.fabricv4.models.md5 import Md5
from equinix.services.fabricv4.models.md5_type import Md5Type
+from equinix.services.fabricv4.models.messages_inner import MessagesInner
from equinix.services.fabricv4.models.metal_interconnection import MetalInterconnection
from equinix.services.fabricv4.models.metric import Metric
from equinix.services.fabricv4.models.metric_asset_type import MetricAssetType
@@ -386,6 +418,8 @@
from equinix.services.fabricv4.models.ptp_advance_configuration_log_sync_interval import PtpAdvanceConfigurationLogSyncInterval
from equinix.services.fabricv4.models.ptp_advance_configuration_time_scale import PtpAdvanceConfigurationTimeScale
from equinix.services.fabricv4.models.ptp_advance_configuration_transport_mode import PtpAdvanceConfigurationTransportMode
+from equinix.services.fabricv4.models.ra_attachment_sort_item import RaAttachmentSortItem
+from equinix.services.fabricv4.models.ra_attachment_sort_item_property import RaAttachmentSortItemProperty
from equinix.services.fabricv4.models.remove_operation import RemoveOperation
from equinix.services.fabricv4.models.replace_operation import ReplaceOperation
from equinix.services.fabricv4.models.resource_data import ResourceData
@@ -395,9 +429,18 @@
from equinix.services.fabricv4.models.response_incomplete_details_reason import ResponseIncompleteDetailsReason
from equinix.services.fabricv4.models.response_usage_input_tokens_details import ResponseUsageInputTokensDetails
from equinix.services.fabricv4.models.response_usage_output_tokens_details import ResponseUsageOutputTokensDetails
+from equinix.services.fabricv4.models.rf_attachment_sort_item import RfAttachmentSortItem
+from equinix.services.fabricv4.models.rf_attachment_sort_item_property import RfAttachmentSortItemProperty
from equinix.services.fabricv4.models.route_aggregation_change_data import RouteAggregationChangeData
from equinix.services.fabricv4.models.route_aggregation_change_data_response import RouteAggregationChangeDataResponse
from equinix.services.fabricv4.models.route_aggregation_connections_data import RouteAggregationConnectionsData
+from equinix.services.fabricv4.models.route_aggregation_rule_and_expression import RouteAggregationRuleAndExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_expression import RouteAggregationRuleExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_or_expression import RouteAggregationRuleOrExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_simple_expression import RouteAggregationRuleSimpleExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_by import RouteAggregationRuleSortBy
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_criteria import RouteAggregationRuleSortCriteria
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_direction import RouteAggregationRuleSortDirection
from equinix.services.fabricv4.models.route_aggregation_rule_state import RouteAggregationRuleState
from equinix.services.fabricv4.models.route_aggregation_rules_base import RouteAggregationRulesBase
from equinix.services.fabricv4.models.route_aggregation_rules_change import RouteAggregationRulesChange
@@ -407,8 +450,11 @@
from equinix.services.fabricv4.models.route_aggregation_rules_change_type import RouteAggregationRulesChangeType
from equinix.services.fabricv4.models.route_aggregation_rules_data import RouteAggregationRulesData
from equinix.services.fabricv4.models.route_aggregation_rules_data_type import RouteAggregationRulesDataType
+from equinix.services.fabricv4.models.route_aggregation_rules_filter import RouteAggregationRulesFilter
from equinix.services.fabricv4.models.route_aggregation_rules_patch_request_item import RouteAggregationRulesPatchRequestItem
from equinix.services.fabricv4.models.route_aggregation_rules_post_request import RouteAggregationRulesPostRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_request import RouteAggregationRulesSearchRequest
+from equinix.services.fabricv4.models.route_aggregation_rules_search_response import RouteAggregationRulesSearchResponse
from equinix.services.fabricv4.models.route_aggregation_sort_item import RouteAggregationSortItem
from equinix.services.fabricv4.models.route_aggregation_sort_item_property import RouteAggregationSortItemProperty
from equinix.services.fabricv4.models.route_aggregation_state import RouteAggregationState
@@ -427,6 +473,13 @@
from equinix.services.fabricv4.models.route_filter_change_data import RouteFilterChangeData
from equinix.services.fabricv4.models.route_filter_change_data_response import RouteFilterChangeDataResponse
from equinix.services.fabricv4.models.route_filter_connections_data import RouteFilterConnectionsData
+from equinix.services.fabricv4.models.route_filter_rule_and_expression import RouteFilterRuleAndExpression
+from equinix.services.fabricv4.models.route_filter_rule_expression import RouteFilterRuleExpression
+from equinix.services.fabricv4.models.route_filter_rule_or_expression import RouteFilterRuleOrExpression
+from equinix.services.fabricv4.models.route_filter_rule_simple_expression import RouteFilterRuleSimpleExpression
+from equinix.services.fabricv4.models.route_filter_rule_sort_by import RouteFilterRuleSortBy
+from equinix.services.fabricv4.models.route_filter_rule_sort_criteria import RouteFilterRuleSortCriteria
+from equinix.services.fabricv4.models.route_filter_rule_sort_direction import RouteFilterRuleSortDirection
from equinix.services.fabricv4.models.route_filter_rule_state import RouteFilterRuleState
from equinix.services.fabricv4.models.route_filter_rules_base import RouteFilterRulesBase
from equinix.services.fabricv4.models.route_filter_rules_change import RouteFilterRulesChange
@@ -437,8 +490,11 @@
from equinix.services.fabricv4.models.route_filter_rules_data import RouteFilterRulesData
from equinix.services.fabricv4.models.route_filter_rules_data_action import RouteFilterRulesDataAction
from equinix.services.fabricv4.models.route_filter_rules_data_type import RouteFilterRulesDataType
+from equinix.services.fabricv4.models.route_filter_rules_filter import RouteFilterRulesFilter
from equinix.services.fabricv4.models.route_filter_rules_patch_request_item import RouteFilterRulesPatchRequestItem
from equinix.services.fabricv4.models.route_filter_rules_post_request import RouteFilterRulesPostRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_request import RouteFilterRulesSearchRequest
+from equinix.services.fabricv4.models.route_filter_rules_search_response import RouteFilterRulesSearchResponse
from equinix.services.fabricv4.models.route_filter_state import RouteFilterState
from equinix.services.fabricv4.models.route_filters_base import RouteFiltersBase
from equinix.services.fabricv4.models.route_filters_base_type import RouteFiltersBaseType
@@ -504,7 +560,11 @@
from equinix.services.fabricv4.models.service_profile_access_point_type_vd import ServiceProfileAccessPointTypeVD
from equinix.services.fabricv4.models.service_profile_access_point_vd import ServiceProfileAccessPointVD
from equinix.services.fabricv4.models.service_profile_access_point_vd_type import ServiceProfileAccessPointVDType
+from equinix.services.fabricv4.models.service_profile_action_request import ServiceProfileActionRequest
+from equinix.services.fabricv4.models.service_profile_action_response import ServiceProfileActionResponse
from equinix.services.fabricv4.models.service_profile_and_filter import ServiceProfileAndFilter
+from equinix.services.fabricv4.models.service_profile_change import ServiceProfileChange
+from equinix.services.fabricv4.models.service_profile_change_status import ServiceProfileChangeStatus
from equinix.services.fabricv4.models.service_profile_filter import ServiceProfileFilter
from equinix.services.fabricv4.models.service_profile_link_protocol_config import ServiceProfileLinkProtocolConfig
from equinix.services.fabricv4.models.service_profile_link_protocol_config_encapsulation import ServiceProfileLinkProtocolConfigEncapsulation
@@ -631,6 +691,7 @@
from equinix.services.fabricv4.models.time_service_sort_criteria import TimeServiceSortCriteria
from equinix.services.fabricv4.models.time_service_sort_direction import TimeServiceSortDirection
from equinix.services.fabricv4.models.time_services_search_request import TimeServicesSearchRequest
+from equinix.services.fabricv4.models.tool_call_information_inner import ToolCallInformationInner
from equinix.services.fabricv4.models.validate_connection_response import ValidateConnectionResponse
from equinix.services.fabricv4.models.validate_request import ValidateRequest
from equinix.services.fabricv4.models.validate_request_filter import ValidateRequestFilter
diff --git a/equinix/services/fabricv4/models/access_point.py b/equinix/services/fabricv4/models/access_point.py
index 00533f45..e5aa8030 100644
--- a/equinix/services/fabricv4/models/access_point.py
+++ b/equinix/services/fabricv4/models/access_point.py
@@ -29,7 +29,6 @@
from equinix.services.fabricv4.models.simplified_service_profile import SimplifiedServiceProfile
from equinix.services.fabricv4.models.virtual_device import VirtualDevice
from equinix.services.fabricv4.models.virtual_network import VirtualNetwork
-from equinix.services.fabricv4.models.vpic_interface import VpicInterface
from typing import Optional, Set
from typing_extensions import Self
@@ -53,10 +52,9 @@ class AccessPoint(BaseModel):
provider_connection_id: Optional[StrictStr] = Field(default=None, description="Provider assigned Connection Id", alias="providerConnectionId")
virtual_network: Optional[VirtualNetwork] = Field(default=None, alias="virtualNetwork")
interconnection: Optional[MetalInterconnection] = None
- vpic_interface: Optional[VpicInterface] = None
role: Optional[AccessPointRole] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["type", "account", "location", "port", "profile", "router", "linkProtocol", "virtualDevice", "interface", "network", "sellerRegion", "peeringType", "authenticationKey", "providerConnectionId", "virtualNetwork", "interconnection", "vpic_interface", "role"]
+ __properties: ClassVar[List[str]] = ["type", "account", "location", "port", "profile", "router", "linkProtocol", "virtualDevice", "interface", "network", "sellerRegion", "peeringType", "authenticationKey", "providerConnectionId", "virtualNetwork", "interconnection", "role"]
model_config = ConfigDict(
populate_by_name=True,
@@ -132,9 +130,6 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of interconnection
if self.interconnection:
_dict['interconnection'] = self.interconnection.to_dict()
- # override the default output from pydantic by calling `to_dict()` of vpic_interface
- if self.vpic_interface:
- _dict['vpic_interface'] = self.vpic_interface.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -168,7 +163,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"providerConnectionId": obj.get("providerConnectionId"),
"virtualNetwork": VirtualNetwork.from_dict(obj["virtualNetwork"]) if obj.get("virtualNetwork") is not None else None,
"interconnection": MetalInterconnection.from_dict(obj["interconnection"]) if obj.get("interconnection") is not None else None,
- "vpic_interface": VpicInterface.from_dict(obj["vpic_interface"]) if obj.get("vpic_interface") is not None else None,
"role": obj.get("role")
})
# store additional fields in additional_properties
diff --git a/equinix/services/fabricv4/models/access_point_type.py b/equinix/services/fabricv4/models/access_point_type.py
index 0ea620b2..c2c0a958 100644
--- a/equinix/services/fabricv4/models/access_point_type.py
+++ b/equinix/services/fabricv4/models/access_point_type.py
@@ -32,6 +32,7 @@ class AccessPointType(str, Enum):
NETWORK = 'NETWORK'
METAL_NETWORK = 'METAL_NETWORK'
VPIC_INTERFACE = 'VPIC_INTERFACE'
+ APP_LINK = 'APP_LINK'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/agent.py b/equinix/services/fabricv4/models/agent.py
new file mode 100644
index 00000000..eb45a8c4
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Agent(BaseModel):
+ """
+ Agent
+ """ # noqa: E501
+ uuid: Optional[StrictStr] = Field(default=None, description="Agent Uuid")
+ type: Optional[StrictStr] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["uuid", "type"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of Agent from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Agent from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "uuid": obj.get("uuid"),
+ "type": obj.get("type")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_activities.py b/equinix/services/fabricv4/models/agent_activities.py
new file mode 100644
index 00000000..bf107e56
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_activities.py
@@ -0,0 +1,122 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.agent import Agent
+from equinix.services.fabricv4.models.agent_activities_metadata import AgentActivitiesMetadata
+from equinix.services.fabricv4.models.changelog import Changelog
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentActivities(BaseModel):
+ """
+ Agent Activities object
+ """ # noqa: E501
+ href: Optional[StrictStr] = Field(default=None, description="Agent Activities URI")
+ type: Optional[StrictStr] = Field(default=None, description="type")
+ uuid: Optional[StrictStr] = Field(default=None, description="Equinix-assigned agent operation identifier")
+ agent: Optional[Agent] = None
+ status: Optional[StrictStr] = Field(default=None, description="Agent activities state COMPLETED, PENDING, PENDING_USER_INPUT, FAILED")
+ metadata: Optional[AgentActivitiesMetadata] = None
+ change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "agent", "status", "metadata", "changeLog"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentActivities from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * OpenAPI `readOnly` fields are excluded.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "uuid",
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of agent
+ if self.agent:
+ _dict['agent'] = self.agent.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of metadata
+ if self.metadata:
+ _dict['metadata'] = self.metadata.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of change_log
+ if self.change_log:
+ _dict['changeLog'] = self.change_log.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentActivities from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "href": obj.get("href"),
+ "type": obj.get("type"),
+ "uuid": obj.get("uuid"),
+ "agent": Agent.from_dict(obj["agent"]) if obj.get("agent") is not None else None,
+ "status": obj.get("status"),
+ "metadata": AgentActivitiesMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None,
+ "changeLog": Changelog.from_dict(obj["changeLog"]) if obj.get("changeLog") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_activities_metadata.py b/equinix/services/fabricv4/models/agent_activities_metadata.py
new file mode 100644
index 00000000..68943e3e
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_activities_metadata.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.chat_message import ChatMessage
+from equinix.services.fabricv4.models.tool_call_information_inner import ToolCallInformationInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentActivitiesMetadata(BaseModel):
+ """
+ AgentActivitiesMetadata
+ """ # noqa: E501
+ chat_message: Optional[ChatMessage] = Field(default=None, alias="chatMessage")
+ tool_call_information: Optional[List[ToolCallInformationInner]] = Field(default=None, description="List of tools called during the agent operation", alias="toolCallInformation")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["chatMessage", "toolCallInformation"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentActivitiesMetadata from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of chat_message
+ if self.chat_message:
+ _dict['chatMessage'] = self.chat_message.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in tool_call_information (list)
+ _items = []
+ if self.tool_call_information:
+ for _item_tool_call_information in self.tool_call_information:
+ if _item_tool_call_information:
+ _items.append(_item_tool_call_information.to_dict())
+ _dict['toolCallInformation'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentActivitiesMetadata from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "chatMessage": ChatMessage.from_dict(obj["chatMessage"]) if obj.get("chatMessage") is not None else None,
+ "toolCallInformation": [ToolCallInformationInner.from_dict(_item) for _item in obj["toolCallInformation"]] if obj.get("toolCallInformation") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_definition.py b/equinix/services/fabricv4/models/agent_definition.py
new file mode 100644
index 00000000..5b32b5a9
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_definition.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentDefinition(BaseModel):
+ """
+ AgentDefinition
+ """ # noqa: E501
+ url: Optional[StrictStr] = Field(default=None, description="Agent Template ReadMe (.md) Definition")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["url"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentDefinition from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentDefinition from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "url": obj.get("url")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_get_activities.py b/equinix/services/fabricv4/models/agent_get_activities.py
new file mode 100644
index 00000000..37be11d1
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_get_activities.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.agent_activities import AgentActivities
+from equinix.services.fabricv4.models.pagination import Pagination
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentGetActivities(BaseModel):
+ """
+ AgentGetActivities
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[AgentActivities]] = Field(default=None, description="Data returned from the API call.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentGetActivities from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentGetActivities from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [AgentActivities.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_get_all_response.py b/equinix/services/fabricv4/models/agent_get_all_response.py
new file mode 100644
index 00000000..a1192eaf
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_get_all_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.agents import Agents
+from equinix.services.fabricv4.models.pagination import Pagination
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentGetAllResponse(BaseModel):
+ """
+ AgentGetAllResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[Agents]] = Field(default=None, description="Data returned from the API call.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentGetAllResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentGetAllResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [Agents.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_patch_request.py b/equinix/services/fabricv4/models/agent_patch_request.py
new file mode 100644
index 00000000..9ec0dcf1
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_patch_request.py
@@ -0,0 +1,105 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentPatchRequest(BaseModel):
+ """
+ Update Agent
+ """ # noqa: E501
+ path: StrictStr = Field(description="path inside document leading to updated parameters for /name, /description, /enabled, and /configration/prompt")
+ op: StrictStr = Field(description="Handy shortcut for operation name")
+ value: Optional[Any] = Field(description="new value for updated parameter")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["path", "op", "value"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentPatchRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ # set to None if value (nullable) is None
+ # and model_fields_set contains the field
+ if self.value is None and "value" in self.model_fields_set:
+ _dict['value'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentPatchRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "path": obj.get("path"),
+ "op": obj.get("op"),
+ "value": obj.get("value")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_post_request.py b/equinix/services/fabricv4/models/agent_post_request.py
new file mode 100644
index 00000000..1f69ffa1
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_post_request.py
@@ -0,0 +1,121 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.agent_template import AgentTemplate
+from equinix.services.fabricv4.models.configuration import Configuration
+from equinix.services.fabricv4.models.project import Project
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentPostRequest(BaseModel):
+ """
+ Create Agent
+ """ # noqa: E501
+ type: StrictStr
+ name: Annotated[str, Field(min_length=3, strict=True, max_length=50)] = Field(description="Customer-provided agent name")
+ description: Optional[Annotated[str, Field(min_length=0, strict=True, max_length=500)]] = Field(default=None, description="Customer-provided agent description")
+ enabled: Optional[StrictBool] = Field(default=None, description="Customer-provided agent enabled status")
+ project: Project
+ agent_template: AgentTemplate = Field(alias="agentTemplate")
+ configuration: Optional[Configuration] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["type", "name", "description", "enabled", "project", "agentTemplate", "configuration"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentPostRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of project
+ if self.project:
+ _dict['project'] = self.project.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of agent_template
+ if self.agent_template:
+ _dict['agentTemplate'] = self.agent_template.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of configuration
+ if self.configuration:
+ _dict['configuration'] = self.configuration.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentPostRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "name": obj.get("name"),
+ "description": obj.get("description"),
+ "enabled": obj.get("enabled"),
+ "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
+ "agentTemplate": AgentTemplate.from_dict(obj["agentTemplate"]) if obj.get("agentTemplate") is not None else None,
+ "configuration": Configuration.from_dict(obj["configuration"]) if obj.get("configuration") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_template.py b/equinix/services/fabricv4/models/agent_template.py
new file mode 100644
index 00000000..ef95284d
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_template.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentTemplate(BaseModel):
+ """
+ AgentTemplate
+ """ # noqa: E501
+ uuid: Optional[StrictStr] = Field(default=None, description="Agent Template Uuid")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["uuid"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentTemplate from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentTemplate from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "uuid": obj.get("uuid")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_template_get_all_response.py b/equinix/services/fabricv4/models/agent_template_get_all_response.py
new file mode 100644
index 00000000..53e61a03
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_template_get_all_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.agent_templates import AgentTemplates
+from equinix.services.fabricv4.models.pagination import Pagination
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentTemplateGetAllResponse(BaseModel):
+ """
+ AgentTemplateGetAllResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[AgentTemplates]] = Field(default=None, description="Data returned from the API call.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentTemplateGetAllResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentTemplateGetAllResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [AgentTemplates.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_templates.py b/equinix/services/fabricv4/models/agent_templates.py
new file mode 100644
index 00000000..c8b90c23
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_templates.py
@@ -0,0 +1,122 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.agent_definition import AgentDefinition
+from equinix.services.fabricv4.models.agent_templates_state import AgentTemplatesState
+from equinix.services.fabricv4.models.changelog import Changelog
+from typing import Optional, Set
+from typing_extensions import Self
+
+class AgentTemplates(BaseModel):
+ """
+ Agent Template object
+ """ # noqa: E501
+ href: Optional[StrictStr] = Field(default=None, description="Agent Template URI")
+ type: Optional[StrictStr] = Field(default=None, description="type")
+ uuid: Optional[StrictStr] = Field(default=None, description="Equinix-assigned access point identifier")
+ name: Optional[Annotated[str, Field(min_length=3, strict=True, max_length=50)]] = Field(default=None, description="Equinix-provided agent template name")
+ description: Optional[StrictStr] = Field(default=None, description="Equinix-provided agent template description")
+ state: Optional[AgentTemplatesState] = None
+ enabled: Optional[StrictBool] = Field(default=None, description="Equinix-provided agent template enabled status")
+ agent_definition: Optional[AgentDefinition] = Field(default=None, alias="agentDefinition")
+ change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "name", "description", "state", "enabled", "agentDefinition", "changeLog"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of AgentTemplates from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of agent_definition
+ if self.agent_definition:
+ _dict['agentDefinition'] = self.agent_definition.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of change_log
+ if self.change_log:
+ _dict['changeLog'] = self.change_log.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of AgentTemplates from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "href": obj.get("href"),
+ "type": obj.get("type"),
+ "uuid": obj.get("uuid"),
+ "name": obj.get("name"),
+ "description": obj.get("description"),
+ "state": obj.get("state"),
+ "enabled": obj.get("enabled"),
+ "agentDefinition": AgentDefinition.from_dict(obj["agentDefinition"]) if obj.get("agentDefinition") is not None else None,
+ "changeLog": Changelog.from_dict(obj["changeLog"]) if obj.get("changeLog") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/agent_templates_state.py b/equinix/services/fabricv4/models/agent_templates_state.py
new file mode 100644
index 00000000..0dfef97b
--- /dev/null
+++ b/equinix/services/fabricv4/models/agent_templates_state.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class AgentTemplatesState(str, Enum):
+ """
+ Agent state
+ """
+
+ """
+ allowed enum values
+ """
+ PROVISIONING = 'PROVISIONING'
+ PROVISIONED = 'PROVISIONED'
+ REPROVISIONING = 'REPROVISIONING'
+ DEPROVISIONING = 'DEPROVISIONING'
+ DEPROVISIONED = 'DEPROVISIONED'
+ FAILED = 'FAILED'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of AgentTemplatesState from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/agents.py b/equinix/services/fabricv4/models/agents.py
new file mode 100644
index 00000000..89774e8f
--- /dev/null
+++ b/equinix/services/fabricv4/models/agents.py
@@ -0,0 +1,135 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.agent_template import AgentTemplate
+from equinix.services.fabricv4.models.agent_templates_state import AgentTemplatesState
+from equinix.services.fabricv4.models.changelog import Changelog
+from equinix.services.fabricv4.models.configuration import Configuration
+from equinix.services.fabricv4.models.project import Project
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Agents(BaseModel):
+ """
+ Agent object
+ """ # noqa: E501
+ href: Optional[StrictStr] = Field(default=None, description="Agent URI")
+ type: Optional[StrictStr] = Field(default=None, description="type")
+ uuid: Optional[StrictStr] = Field(default=None, description="Equinix-assigned access point identifier")
+ name: Optional[StrictStr] = Field(default=None, description="Customer-provided agent name")
+ description: Optional[StrictStr] = Field(default=None, description="Customer-provided agent description")
+ state: Optional[AgentTemplatesState] = None
+ enabled: Optional[StrictBool] = Field(default=None, description="Customer-provided agent enabled status")
+ project: Optional[Project] = None
+ agent_template: Optional[AgentTemplate] = Field(default=None, alias="agentTemplate")
+ configuration: Optional[Configuration] = None
+ change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "name", "description", "state", "enabled", "project", "agentTemplate", "configuration", "changeLog"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of Agents from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * OpenAPI `readOnly` fields are excluded.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "href",
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of project
+ if self.project:
+ _dict['project'] = self.project.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of agent_template
+ if self.agent_template:
+ _dict['agentTemplate'] = self.agent_template.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of configuration
+ if self.configuration:
+ _dict['configuration'] = self.configuration.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of change_log
+ if self.change_log:
+ _dict['changeLog'] = self.change_log.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Agents from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "href": obj.get("href"),
+ "type": obj.get("type"),
+ "uuid": obj.get("uuid"),
+ "name": obj.get("name"),
+ "description": obj.get("description"),
+ "state": obj.get("state"),
+ "enabled": obj.get("enabled"),
+ "project": Project.from_dict(obj["project"]) if obj.get("project") is not None else None,
+ "agentTemplate": AgentTemplate.from_dict(obj["agentTemplate"]) if obj.get("agentTemplate") is not None else None,
+ "configuration": Configuration.from_dict(obj["configuration"]) if obj.get("configuration") is not None else None,
+ "changeLog": Changelog.from_dict(obj["changeLog"]) if obj.get("changeLog") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/asset.py b/equinix/services/fabricv4/models/asset.py
index d382ad96..80a4b6ca 100644
--- a/equinix/services/fabricv4/models/asset.py
+++ b/equinix/services/fabricv4/models/asset.py
@@ -28,6 +28,8 @@ class Asset(str, Enum):
METROS = 'metros'
ORGANIZATIONS = 'organizations'
PROJECTS = 'projects'
+ NETWORKEDGEDEVICES = 'networkEdgeDevices'
+ COMPANYPROFILES = 'companyProfiles'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/change.py b/equinix/services/fabricv4/models/change.py
index 14314676..8f737340 100644
--- a/equinix/services/fabricv4/models/change.py
+++ b/equinix/services/fabricv4/models/change.py
@@ -16,9 +16,9 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
-from equinix.services.fabricv4.models.change_status import ChangeStatus
from equinix.services.fabricv4.models.change_type import ChangeType
from equinix.services.fabricv4.models.connection_change_operation import ConnectionChangeOperation
+from equinix.services.fabricv4.models.service_profile_change_status import ServiceProfileChangeStatus
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +28,7 @@ class Change(BaseModel):
""" # noqa: E501
uuid: Optional[StrictStr] = Field(default=None, description="Uniquely identifies a change")
type: ChangeType
- status: Optional[ChangeStatus] = None
+ status: Optional[ServiceProfileChangeStatus] = None
created_date_time: datetime = Field(description="Set when change flow starts", alias="createdDateTime")
updated_date_time: Optional[datetime] = Field(default=None, description="Set when change object is updated", alias="updatedDateTime")
information: Optional[StrictStr] = Field(default=None, description="Additional information")
diff --git a/equinix/services/fabricv4/models/chat_message.py b/equinix/services/fabricv4/models/chat_message.py
new file mode 100644
index 00000000..84c703e2
--- /dev/null
+++ b/equinix/services/fabricv4/models/chat_message.py
@@ -0,0 +1,104 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.messages_inner import MessagesInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ChatMessage(BaseModel):
+ """
+ Chat message and tool call information during the agent operation
+ """ # noqa: E501
+ messages: Optional[List[MessagesInner]] = Field(default=None, description="List of chat messages")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["messages"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ChatMessage from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in messages (list)
+ _items = []
+ if self.messages:
+ for _item_messages in self.messages:
+ if _item_messages:
+ _items.append(_item_messages.to_dict())
+ _dict['messages'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ChatMessage from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "messages": [MessagesInner.from_dict(_item) for _item in obj["messages"]] if obj.get("messages") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_event_asset_type.py b/equinix/services/fabricv4/models/cloud_event_asset_type.py
index ed66ee41..d65516d2 100644
--- a/equinix/services/fabricv4/models/cloud_event_asset_type.py
+++ b/equinix/services/fabricv4/models/cloud_event_asset_type.py
@@ -31,6 +31,7 @@ class CloudEventAssetType(str, Enum):
PROJECTS = 'projects'
ORGANIZATIONS = 'organizations'
TIMESERVICES = 'timeServices'
+ COMPANYPROFILES = 'companyProfiles'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregation_and_expression.py b/equinix/services/fabricv4/models/cloud_router_route_aggregation_and_expression.py
new file mode 100644
index 00000000..3a5f14ad
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregation_and_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteAggregationAndExpression(BaseModel):
+ """
+ AND expression containing multiple filter expressions
+ """ # noqa: E501
+ var_and: Optional[Annotated[List[CloudRouterRouteAggregationExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="and")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["and"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationAndExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_and (list)
+ _items = []
+ if self.var_and:
+ for _item_var_and in self.var_and:
+ if _item_var_and:
+ _items.append(_item_var_and.to_dict())
+ _dict['and'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationAndExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "and": [CloudRouterRouteAggregationExpression.from_dict(_item) for _item in obj["and"]] if obj.get("and") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_expression import CloudRouterRouteAggregationExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteAggregationAndExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregation_expression.py b/equinix/services/fabricv4/models/cloud_router_route_aggregation_expression.py
new file mode 100644
index 00000000..3d4d8e40
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregation_expression.py
@@ -0,0 +1,147 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression import CloudRouterRouteAggregationSimpleExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+CLOUDROUTERROUTEAGGREGATIONEXPRESSION_ANY_OF_SCHEMAS = ["CloudRouterRouteAggregationAndExpression", "CloudRouterRouteAggregationOrExpression", "CloudRouterRouteAggregationSimpleExpression"]
+
+class CloudRouterRouteAggregationExpression(BaseModel):
+ """
+ Filter expression that can be AND, OR, or a simple expression
+ """
+
+ # data type: CloudRouterRouteAggregationAndExpression
+ anyof_schema_1_validator: Optional[CloudRouterRouteAggregationAndExpression] = None
+ # data type: CloudRouterRouteAggregationOrExpression
+ anyof_schema_2_validator: Optional[CloudRouterRouteAggregationOrExpression] = None
+ # data type: CloudRouterRouteAggregationSimpleExpression
+ anyof_schema_3_validator: Optional[CloudRouterRouteAggregationSimpleExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "CloudRouterRouteAggregationAndExpression", "CloudRouterRouteAggregationOrExpression", "CloudRouterRouteAggregationSimpleExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = CloudRouterRouteAggregationExpression.model_construct()
+ error_messages = []
+ # validate data type: CloudRouterRouteAggregationAndExpression
+ if not isinstance(v, CloudRouterRouteAggregationAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteAggregationAndExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteAggregationOrExpression
+ if not isinstance(v, CloudRouterRouteAggregationOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteAggregationOrExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteAggregationSimpleExpression
+ if not isinstance(v, CloudRouterRouteAggregationSimpleExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteAggregationSimpleExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in CloudRouterRouteAggregationExpression with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[CloudRouterRouteAggregationAndExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteAggregationAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[CloudRouterRouteAggregationOrExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteAggregationOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_3_validator: Optional[CloudRouterRouteAggregationSimpleExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteAggregationSimpleExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into CloudRouterRouteAggregationExpression with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression, CloudRouterRouteAggregationSimpleExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_and_expression import CloudRouterRouteAggregationAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_or_expression import CloudRouterRouteAggregationOrExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteAggregationExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregation_or_expression.py b/equinix/services/fabricv4/models/cloud_router_route_aggregation_or_expression.py
new file mode 100644
index 00000000..00e809bb
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregation_or_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteAggregationOrExpression(BaseModel):
+ """
+ OR expression containing multiple filter expressions
+ """ # noqa: E501
+ var_or: Optional[Annotated[List[CloudRouterRouteAggregationExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="or")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["or"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationOrExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_or (list)
+ _items = []
+ if self.var_or:
+ for _item_var_or in self.var_or:
+ if _item_var_or:
+ _items.append(_item_var_or.to_dict())
+ _dict['or'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationOrExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "or": [CloudRouterRouteAggregationExpression.from_dict(_item) for _item in obj["or"]] if obj.get("or") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_expression import CloudRouterRouteAggregationExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteAggregationOrExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression.py b/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression.py
new file mode 100644
index 00000000..48309bc0
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_simple_expression_property import CloudRouterRouteAggregationSimpleExpressionProperty
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteAggregationSimpleExpression(BaseModel):
+ """
+ CloudRouterRouteAggregationSimpleExpression
+ """ # noqa: E501
+ var_property: Optional[CloudRouterRouteAggregationSimpleExpressionProperty] = Field(default=None, alias="property")
+ operator: Optional[StrictStr] = None
+ values: Optional[List[StrictStr]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "operator", "values"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationSimpleExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationSimpleExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property"),
+ "operator": obj.get("operator"),
+ "values": obj.get("values")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression_property.py b/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression_property.py
new file mode 100644
index 00000000..2010364c
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregation_simple_expression_property.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CloudRouterRouteAggregationSimpleExpressionProperty(str, Enum):
+ """
+ CloudRouterRouteAggregationSimpleExpressionProperty
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_ATTACHMENT_STATUS = '/attachmentStatus'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CloudRouterRouteAggregationSimpleExpressionProperty from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregations_filter.py b/equinix/services/fabricv4/models/cloud_router_route_aggregations_filter.py
new file mode 100644
index 00000000..5364a547
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregations_filter.py
@@ -0,0 +1,130 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_and_expression import CloudRouterRouteAggregationAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_aggregation_or_expression import CloudRouterRouteAggregationOrExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+CLOUDROUTERROUTEAGGREGATIONSFILTER_ANY_OF_SCHEMAS = ["CloudRouterRouteAggregationAndExpression", "CloudRouterRouteAggregationOrExpression"]
+
+class CloudRouterRouteAggregationsFilter(BaseModel):
+ """
+ Top-level filter that can be either an AND expression or OR expression
+ """
+
+ # data type: CloudRouterRouteAggregationAndExpression
+ anyof_schema_1_validator: Optional[CloudRouterRouteAggregationAndExpression] = None
+ # data type: CloudRouterRouteAggregationOrExpression
+ anyof_schema_2_validator: Optional[CloudRouterRouteAggregationOrExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "CloudRouterRouteAggregationAndExpression", "CloudRouterRouteAggregationOrExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = CloudRouterRouteAggregationsFilter.model_construct()
+ error_messages = []
+ # validate data type: CloudRouterRouteAggregationAndExpression
+ if not isinstance(v, CloudRouterRouteAggregationAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteAggregationAndExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteAggregationOrExpression
+ if not isinstance(v, CloudRouterRouteAggregationOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteAggregationOrExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in CloudRouterRouteAggregationsFilter with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[CloudRouterRouteAggregationAndExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteAggregationAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[CloudRouterRouteAggregationOrExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteAggregationOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into CloudRouterRouteAggregationsFilter with anyOf schemas: CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CloudRouterRouteAggregationAndExpression, CloudRouterRouteAggregationOrExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_base.py b/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_base.py
new file mode 100644
index 00000000..c0740e04
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_base.py
@@ -0,0 +1,117 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.cloud_router_route_aggregations_filter import CloudRouterRouteAggregationsFilter
+from equinix.services.fabricv4.models.pagination import Pagination
+from equinix.services.fabricv4.models.ra_attachment_sort_item import RaAttachmentSortItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteAggregationsSearchBase(BaseModel):
+ """
+ CloudRouterRouteAggregationsSearchBase
+ """ # noqa: E501
+ filter: Optional[CloudRouterRouteAggregationsFilter] = None
+ pagination: Optional[Pagination] = None
+ sort: Optional[Annotated[List[RaAttachmentSortItem], Field(min_length=1, max_length=3)]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["filter", "pagination", "sort"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationsSearchBase from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of filter
+ if self.filter:
+ _dict['filter'] = self.filter.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in sort (list)
+ _items = []
+ if self.sort:
+ for _item_sort in self.sort:
+ if _item_sort:
+ _items.append(_item_sort.to_dict())
+ _dict['sort'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationsSearchBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "filter": CloudRouterRouteAggregationsFilter.from_dict(obj["filter"]) if obj.get("filter") is not None else None,
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "sort": [RaAttachmentSortItem.from_dict(_item) for _item in obj["sort"]] if obj.get("sort") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_response.py b/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_response.py
new file mode 100644
index 00000000..252f6f1b
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_aggregations_search_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.connection_route_aggregation_data import ConnectionRouteAggregationData
+from equinix.services.fabricv4.models.pagination import Pagination
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteAggregationsSearchResponse(BaseModel):
+ """
+ CloudRouterRouteAggregationsSearchResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[ConnectionRouteAggregationData]] = Field(default=None, description="List of route aggregation attachments for a given cloud router")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationsSearchResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteAggregationsSearchResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [ConnectionRouteAggregationData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filter_and_expression.py b/equinix/services/fabricv4/models/cloud_router_route_filter_and_expression.py
new file mode 100644
index 00000000..cd12ef2a
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filter_and_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteFilterAndExpression(BaseModel):
+ """
+ AND expression containing multiple filter expressions
+ """ # noqa: E501
+ var_and: Optional[Annotated[List[CloudRouterRouteFilterExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="and")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["and"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterAndExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_and (list)
+ _items = []
+ if self.var_and:
+ for _item_var_and in self.var_and:
+ if _item_var_and:
+ _items.append(_item_var_and.to_dict())
+ _dict['and'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterAndExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "and": [CloudRouterRouteFilterExpression.from_dict(_item) for _item in obj["and"]] if obj.get("and") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.cloud_router_route_filter_expression import CloudRouterRouteFilterExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteFilterAndExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filter_expression.py b/equinix/services/fabricv4/models/cloud_router_route_filter_expression.py
new file mode 100644
index 00000000..802bc291
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filter_expression.py
@@ -0,0 +1,147 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression import CloudRouterRouteFilterSimpleExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+CLOUDROUTERROUTEFILTEREXPRESSION_ANY_OF_SCHEMAS = ["CloudRouterRouteFilterAndExpression", "CloudRouterRouteFilterOrExpression", "CloudRouterRouteFilterSimpleExpression"]
+
+class CloudRouterRouteFilterExpression(BaseModel):
+ """
+ Filter expression that can be AND, OR, or a simple expression
+ """
+
+ # data type: CloudRouterRouteFilterAndExpression
+ anyof_schema_1_validator: Optional[CloudRouterRouteFilterAndExpression] = None
+ # data type: CloudRouterRouteFilterOrExpression
+ anyof_schema_2_validator: Optional[CloudRouterRouteFilterOrExpression] = None
+ # data type: CloudRouterRouteFilterSimpleExpression
+ anyof_schema_3_validator: Optional[CloudRouterRouteFilterSimpleExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "CloudRouterRouteFilterAndExpression", "CloudRouterRouteFilterOrExpression", "CloudRouterRouteFilterSimpleExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = CloudRouterRouteFilterExpression.model_construct()
+ error_messages = []
+ # validate data type: CloudRouterRouteFilterAndExpression
+ if not isinstance(v, CloudRouterRouteFilterAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteFilterAndExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteFilterOrExpression
+ if not isinstance(v, CloudRouterRouteFilterOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteFilterOrExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteFilterSimpleExpression
+ if not isinstance(v, CloudRouterRouteFilterSimpleExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteFilterSimpleExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in CloudRouterRouteFilterExpression with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[CloudRouterRouteFilterAndExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteFilterAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[CloudRouterRouteFilterOrExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteFilterOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_3_validator: Optional[CloudRouterRouteFilterSimpleExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteFilterSimpleExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into CloudRouterRouteFilterExpression with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression, CloudRouterRouteFilterSimpleExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+from equinix.services.fabricv4.models.cloud_router_route_filter_and_expression import CloudRouterRouteFilterAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_or_expression import CloudRouterRouteFilterOrExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteFilterExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filter_or_expression.py b/equinix/services/fabricv4/models/cloud_router_route_filter_or_expression.py
new file mode 100644
index 00000000..b11fc4e0
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filter_or_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteFilterOrExpression(BaseModel):
+ """
+ OR expression containing multiple filter expressions
+ """ # noqa: E501
+ var_or: Optional[Annotated[List[CloudRouterRouteFilterExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="or")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["or"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterOrExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_or (list)
+ _items = []
+ if self.var_or:
+ for _item_var_or in self.var_or:
+ if _item_var_or:
+ _items.append(_item_var_or.to_dict())
+ _dict['or'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterOrExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "or": [CloudRouterRouteFilterExpression.from_dict(_item) for _item in obj["or"]] if obj.get("or") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.cloud_router_route_filter_expression import CloudRouterRouteFilterExpression
+# TODO: Rewrite to not use raise_errors
+CloudRouterRouteFilterOrExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression.py b/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression.py
new file mode 100644
index 00000000..6cc48989
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression.py
@@ -0,0 +1,102 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.cloud_router_route_filter_simple_expression_property import CloudRouterRouteFilterSimpleExpressionProperty
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteFilterSimpleExpression(BaseModel):
+ """
+ CloudRouterRouteFilterSimpleExpression
+ """ # noqa: E501
+ var_property: Optional[CloudRouterRouteFilterSimpleExpressionProperty] = Field(default=None, alias="property")
+ operator: Optional[StrictStr] = None
+ values: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=8)]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "operator", "values"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterSimpleExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFilterSimpleExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property"),
+ "operator": obj.get("operator"),
+ "values": obj.get("values")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression_property.py b/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression_property.py
new file mode 100644
index 00000000..0ad7d412
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filter_simple_expression_property.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class CloudRouterRouteFilterSimpleExpressionProperty(str, Enum):
+ """
+ CloudRouterRouteFilterSimpleExpressionProperty
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_DIRECTION = '/direction'
+ SLASH_ATTACHMENT_STATUS = '/attachmentStatus'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of CloudRouterRouteFilterSimpleExpressionProperty from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filters_filter.py b/equinix/services/fabricv4/models/cloud_router_route_filters_filter.py
new file mode 100644
index 00000000..e947a960
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filters_filter.py
@@ -0,0 +1,130 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.cloud_router_route_filter_and_expression import CloudRouterRouteFilterAndExpression
+from equinix.services.fabricv4.models.cloud_router_route_filter_or_expression import CloudRouterRouteFilterOrExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+CLOUDROUTERROUTEFILTERSFILTER_ANY_OF_SCHEMAS = ["CloudRouterRouteFilterAndExpression", "CloudRouterRouteFilterOrExpression"]
+
+class CloudRouterRouteFiltersFilter(BaseModel):
+ """
+ Top-level filter that can be either an AND expression or OR expression
+ """
+
+ # data type: CloudRouterRouteFilterAndExpression
+ anyof_schema_1_validator: Optional[CloudRouterRouteFilterAndExpression] = None
+ # data type: CloudRouterRouteFilterOrExpression
+ anyof_schema_2_validator: Optional[CloudRouterRouteFilterOrExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "CloudRouterRouteFilterAndExpression", "CloudRouterRouteFilterOrExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = CloudRouterRouteFiltersFilter.model_construct()
+ error_messages = []
+ # validate data type: CloudRouterRouteFilterAndExpression
+ if not isinstance(v, CloudRouterRouteFilterAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteFilterAndExpression`")
+ else:
+ return v
+
+ # validate data type: CloudRouterRouteFilterOrExpression
+ if not isinstance(v, CloudRouterRouteFilterOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CloudRouterRouteFilterOrExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in CloudRouterRouteFiltersFilter with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[CloudRouterRouteFilterAndExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteFilterAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[CloudRouterRouteFilterOrExpression] = None
+ try:
+ instance.actual_instance = CloudRouterRouteFilterOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into CloudRouterRouteFiltersFilter with anyOf schemas: CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CloudRouterRouteFilterAndExpression, CloudRouterRouteFilterOrExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filters_search_base.py b/equinix/services/fabricv4/models/cloud_router_route_filters_search_base.py
new file mode 100644
index 00000000..065bf62d
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filters_search_base.py
@@ -0,0 +1,117 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from equinix.services.fabricv4.models.cloud_router_route_filters_filter import CloudRouterRouteFiltersFilter
+from equinix.services.fabricv4.models.pagination import Pagination
+from equinix.services.fabricv4.models.rf_attachment_sort_item import RfAttachmentSortItem
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteFiltersSearchBase(BaseModel):
+ """
+ CloudRouterRouteFiltersSearchBase
+ """ # noqa: E501
+ filter: Optional[CloudRouterRouteFiltersFilter] = None
+ pagination: Optional[Pagination] = None
+ sort: Optional[Annotated[List[RfAttachmentSortItem], Field(min_length=1, max_length=3)]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["filter", "pagination", "sort"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFiltersSearchBase from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of filter
+ if self.filter:
+ _dict['filter'] = self.filter.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in sort (list)
+ _items = []
+ if self.sort:
+ for _item_sort in self.sort:
+ if _item_sort:
+ _items.append(_item_sort.to_dict())
+ _dict['sort'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFiltersSearchBase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "filter": CloudRouterRouteFiltersFilter.from_dict(obj["filter"]) if obj.get("filter") is not None else None,
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "sort": [RfAttachmentSortItem.from_dict(_item) for _item in obj["sort"]] if obj.get("sort") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/cloud_router_route_filters_search_response.py b/equinix/services/fabricv4/models/cloud_router_route_filters_search_response.py
new file mode 100644
index 00000000..6c0b0fd1
--- /dev/null
+++ b/equinix/services/fabricv4/models/cloud_router_route_filters_search_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.connection_route_filter_data import ConnectionRouteFilterData
+from equinix.services.fabricv4.models.pagination import Pagination
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CloudRouterRouteFiltersSearchResponse(BaseModel):
+ """
+ CloudRouterRouteFiltersSearchResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[ConnectionRouteFilterData]] = Field(default=None, description="List of route filter attachments for a given cloud router")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFiltersSearchResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CloudRouterRouteFiltersSearchResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [ConnectionRouteFilterData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/company_profile_response.py b/equinix/services/fabricv4/models/company_profile_response.py
index 05568815..47bcdd3a 100644
--- a/equinix/services/fabricv4/models/company_profile_response.py
+++ b/equinix/services/fabricv4/models/company_profile_response.py
@@ -20,6 +20,7 @@
from equinix.services.fabricv4.models.company_logo import CompanyLogo
from equinix.services.fabricv4.models.company_metro import CompanyMetro
from equinix.services.fabricv4.models.company_profile_change import CompanyProfileChange
+from equinix.services.fabricv4.models.company_profile_response_account import CompanyProfileResponseAccount
from equinix.services.fabricv4.models.company_service_profile import CompanyServiceProfile
from equinix.services.fabricv4.models.private_service import PrivateService
from equinix.services.fabricv4.models.tag_response import TagResponse
@@ -37,6 +38,7 @@ class CompanyProfileResponse(BaseModel):
summary: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=125)]] = None
description: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=450)]] = None
state: Optional[Dict[str, Any]] = None
+ account: Optional[CompanyProfileResponseAccount] = None
metros: Optional[List[CompanyMetro]] = None
logo: Optional[CompanyLogo] = None
tags: Optional[List[TagResponse]] = None
@@ -48,7 +50,7 @@ class CompanyProfileResponse(BaseModel):
change: Optional[CompanyProfileChange] = None
change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "summary", "description", "state", "metros", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "contactUrl", "change", "changeLog"]
+ __properties: ClassVar[List[str]] = ["href", "uuid", "type", "name", "summary", "description", "state", "account", "metros", "logo", "tags", "serviceProfiles", "privateServices", "notifications", "webUrl", "contactUrl", "change", "changeLog"]
model_config = ConfigDict(
populate_by_name=True,
@@ -91,6 +93,9 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of account
+ if self.account:
+ _dict['account'] = self.account.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in metros (list)
_items = []
if self.metros:
@@ -152,6 +157,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"summary": obj.get("summary"),
"description": obj.get("description"),
"state": obj.get("state"),
+ "account": CompanyProfileResponseAccount.from_dict(obj["account"]) if obj.get("account") is not None else None,
"metros": [CompanyMetro.from_dict(_item) for _item in obj["metros"]] if obj.get("metros") is not None else None,
"logo": CompanyLogo.from_dict(obj["logo"]) if obj.get("logo") is not None else None,
"tags": [TagResponse.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
diff --git a/equinix/services/fabricv4/models/company_profile_response_account.py b/equinix/services/fabricv4/models/company_profile_response_account.py
new file mode 100644
index 00000000..85a31e44
--- /dev/null
+++ b/equinix/services/fabricv4/models/company_profile_response_account.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CompanyProfileResponseAccount(BaseModel):
+ """
+ CompanyProfileResponseAccount
+ """ # noqa: E501
+ root_org_id: Optional[StrictStr] = Field(default=None, alias="rootOrgId")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["rootOrgId"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of CompanyProfileResponseAccount from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CompanyProfileResponseAccount from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "rootOrgId": obj.get("rootOrgId")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/configuration.py b/equinix/services/fabricv4/models/configuration.py
new file mode 100644
index 00000000..28fa14bc
--- /dev/null
+++ b/equinix/services/fabricv4/models/configuration.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Configuration(BaseModel):
+ """
+ Configuration
+ """ # noqa: E501
+ prompt: Optional[StrictStr] = Field(default=None, description="Agent configuration prompt to be used for agent specification")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["prompt"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of Configuration from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Configuration from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "prompt": obj.get("prompt")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/connection.py b/equinix/services/fabricv4/models/connection.py
index 4472fa8e..f5ac8f7a 100644
--- a/equinix/services/fabricv4/models/connection.py
+++ b/equinix/services/fabricv4/models/connection.py
@@ -23,7 +23,6 @@
from equinix.services.fabricv4.models.connection_redundancy import ConnectionRedundancy
from equinix.services.fabricv4.models.connection_side import ConnectionSide
from equinix.services.fabricv4.models.connection_side_additional_info import ConnectionSideAdditionalInfo
-from equinix.services.fabricv4.models.connection_state import ConnectionState
from equinix.services.fabricv4.models.connection_type import ConnectionType
from equinix.services.fabricv4.models.geo_scope_type import GeoScopeType
from equinix.services.fabricv4.models.marketplace_subscription import MarketplaceSubscription
@@ -43,7 +42,6 @@ class Connection(BaseModel):
uuid: Optional[StrictStr] = Field(default=None, description="Equinix-assigned connection identifier")
name: StrictStr = Field(description="Customer-provided connection name")
description: Optional[StrictStr] = Field(default=None, description="Customer-provided connection description")
- state: Optional[ConnectionState] = None
change: Optional[Change] = None
operation: Optional[ConnectionOperation] = None
order: Optional[Order] = None
@@ -61,7 +59,7 @@ class Connection(BaseModel):
additional_info: Optional[List[ConnectionSideAdditionalInfo]] = Field(default=None, description="Connection additional information", alias="additionalInfo")
project: Optional[Project] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["href", "type", "uuid", "name", "description", "state", "change", "operation", "order", "notifications", "account", "changeLog", "bandwidth", "geoScope", "redundancy", "isRemote", "direction", "aSide", "zSide", "marketplaceSubscription", "additionalInfo", "project"]
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "name", "description", "change", "operation", "order", "notifications", "account", "changeLog", "bandwidth", "geoScope", "redundancy", "isRemote", "direction", "aSide", "zSide", "marketplaceSubscription", "additionalInfo", "project"]
model_config = ConfigDict(
populate_by_name=True,
@@ -172,7 +170,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"uuid": obj.get("uuid"),
"name": obj.get("name"),
"description": obj.get("description"),
- "state": obj.get("state"),
"change": Change.from_dict(obj["change"]) if obj.get("change") is not None else None,
"operation": ConnectionOperation.from_dict(obj["operation"]) if obj.get("operation") is not None else None,
"order": Order.from_dict(obj["order"]) if obj.get("order") is not None else None,
diff --git a/equinix/services/fabricv4/models/connection_side.py b/equinix/services/fabricv4/models/connection_side.py
index dbca52ef..0ebd289e 100644
--- a/equinix/services/fabricv4/models/connection_side.py
+++ b/equinix/services/fabricv4/models/connection_side.py
@@ -16,10 +16,7 @@
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from equinix.services.fabricv4.models.access_point import AccessPoint
-from equinix.services.fabricv4.models.connection_company_profile import ConnectionCompanyProfile
-from equinix.services.fabricv4.models.connection_invitation import ConnectionInvitation
from equinix.services.fabricv4.models.connection_side_additional_info import ConnectionSideAdditionalInfo
-from equinix.services.fabricv4.models.internet_access import InternetAccess
from equinix.services.fabricv4.models.service_token import ServiceToken
from typing import Optional, Set
from typing_extensions import Self
@@ -30,12 +27,9 @@ class ConnectionSide(BaseModel):
""" # noqa: E501
service_token: Optional[ServiceToken] = Field(default=None, alias="serviceToken")
access_point: Optional[AccessPoint] = Field(default=None, alias="accessPoint")
- internet_access: Optional[InternetAccess] = Field(default=None, alias="internetAccess")
- company_profile: Optional[ConnectionCompanyProfile] = Field(default=None, alias="companyProfile")
- invitation: Optional[ConnectionInvitation] = None
additional_info: Optional[List[ConnectionSideAdditionalInfo]] = Field(default=None, description="Any additional information, which is not part of connection metadata or configuration", alias="additionalInfo")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["serviceToken", "accessPoint", "internetAccess", "companyProfile", "invitation", "additionalInfo"]
+ __properties: ClassVar[List[str]] = ["serviceToken", "accessPoint", "additionalInfo"]
model_config = ConfigDict(
populate_by_name=True,
@@ -84,15 +78,6 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of access_point
if self.access_point:
_dict['accessPoint'] = self.access_point.to_dict()
- # override the default output from pydantic by calling `to_dict()` of internet_access
- if self.internet_access:
- _dict['internetAccess'] = self.internet_access.to_dict()
- # override the default output from pydantic by calling `to_dict()` of company_profile
- if self.company_profile:
- _dict['companyProfile'] = self.company_profile.to_dict()
- # override the default output from pydantic by calling `to_dict()` of invitation
- if self.invitation:
- _dict['invitation'] = self.invitation.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in additional_info (list)
_items = []
if self.additional_info:
@@ -119,9 +104,6 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"serviceToken": ServiceToken.from_dict(obj["serviceToken"]) if obj.get("serviceToken") is not None else None,
"accessPoint": AccessPoint.from_dict(obj["accessPoint"]) if obj.get("accessPoint") is not None else None,
- "internetAccess": InternetAccess.from_dict(obj["internetAccess"]) if obj.get("internetAccess") is not None else None,
- "companyProfile": ConnectionCompanyProfile.from_dict(obj["companyProfile"]) if obj.get("companyProfile") is not None else None,
- "invitation": ConnectionInvitation.from_dict(obj["invitation"]) if obj.get("invitation") is not None else None,
"additionalInfo": [ConnectionSideAdditionalInfo.from_dict(_item) for _item in obj["additionalInfo"]] if obj.get("additionalInfo") is not None else None
})
# store additional fields in additional_properties
diff --git a/equinix/services/fabricv4/models/connection_state.py b/equinix/services/fabricv4/models/connection_state.py
index bc09d3aa..d774205c 100644
--- a/equinix/services/fabricv4/models/connection_state.py
+++ b/equinix/services/fabricv4/models/connection_state.py
@@ -29,9 +29,7 @@ class ConnectionState(str, Enum):
DRAFT = 'DRAFT'
FAILED = 'FAILED'
PENDING = 'PENDING'
- PROVISIONED = 'PROVISIONED'
PROVISIONING = 'PROVISIONING'
- REPROVISIONING = 'REPROVISIONING'
EMPTY = ''
@classmethod
diff --git a/equinix/services/fabricv4/models/connection_type.py b/equinix/services/fabricv4/models/connection_type.py
index c2282f0d..1d403552 100644
--- a/equinix/services/fabricv4/models/connection_type.py
+++ b/equinix/services/fabricv4/models/connection_type.py
@@ -35,8 +35,7 @@ class ConnectionType(str, Enum):
IPWAN_VC = 'IPWAN_VC'
IA_VC = 'IA_VC'
MC_VC = 'MC_VC'
- IX_PUBLIC_VC = 'IX_PUBLIC_VC'
- IX_PRIVATE_VC = 'IX_PRIVATE_VC'
+ IX_VC = 'IX_VC'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/equinix_status.py b/equinix/services/fabricv4/models/equinix_status.py
index 59aed211..f4d5fbd8 100644
--- a/equinix/services/fabricv4/models/equinix_status.py
+++ b/equinix/services/fabricv4/models/equinix_status.py
@@ -26,14 +26,6 @@ class EquinixStatus(str, Enum):
REJECTED = 'REJECTED'
PENDING_DELETE = 'PENDING_DELETE'
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'
DEPROVISIONING = 'DEPROVISIONING'
@@ -44,16 +36,11 @@ class EquinixStatus(str, Enum):
PENDING_PROVIDER_VLAN = 'PENDING_PROVIDER_VLAN'
DEPROVISIONED = 'DEPROVISIONED'
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'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/expression_operator.py b/equinix/services/fabricv4/models/expression_operator.py
index f2aabedf..58b0c815 100644
--- a/equinix/services/fabricv4/models/expression_operator.py
+++ b/equinix/services/fabricv4/models/expression_operator.py
@@ -25,10 +25,15 @@ class ExpressionOperator(str, Enum):
EQUAL = '='
EXCLAMATION_EQUAL = '!='
GREATER_THAN = '>'
+ GREATER_THAN_EQUAL = '>='
LESS_THAN = '<'
+ LESS_THAN_EQUAL = '<='
LIKE = 'LIKE'
+ ILKE = 'ILKE'
IS_NOT_NULL = 'IS NOT NULL'
IS_NULL = 'IS NULL'
+ IN = 'IN'
+ BETWEEN = 'BETWEEN'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/messages_inner.py b/equinix/services/fabricv4/models/messages_inner.py
new file mode 100644
index 00000000..291cd3f3
--- /dev/null
+++ b/equinix/services/fabricv4/models/messages_inner.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class MessagesInner(BaseModel):
+ """
+ MessagesInner
+ """ # noqa: E501
+ type: Optional[StrictStr] = Field(default=None, description="Role of the message sender user or assistant")
+ content: Optional[StrictStr] = Field(default=None, description="Content of the chat message")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["type", "content"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of MessagesInner from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of MessagesInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "content": obj.get("content")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/order.py b/equinix/services/fabricv4/models/order.py
index 485d96d2..d4755399 100644
--- a/equinix/services/fabricv4/models/order.py
+++ b/equinix/services/fabricv4/models/order.py
@@ -13,7 +13,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from typing import Optional, Set
@@ -29,8 +29,9 @@ class Order(BaseModel):
order_id: Optional[StrictStr] = Field(default=None, description="Order Identification", alias="orderId")
order_number: Optional[StrictStr] = Field(default=None, description="Order Reference Number", alias="orderNumber")
term_length: Optional[Annotated[int, Field(le=36, strict=True, ge=1)]] = Field(default=1, description="Term length in months, valid values are 1, 12, 24, 36 where 1 is the default value (for on-demand case).", alias="termLength")
+ contracted_bandwidth: Optional[StrictInt] = Field(default=None, description="Contracted bandwidth", alias="contractedBandwidth")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["purchaseOrderNumber", "customerReferenceNumber", "billingTier", "orderId", "orderNumber", "termLength"]
+ __properties: ClassVar[List[str]] = ["purchaseOrderNumber", "customerReferenceNumber", "billingTier", "orderId", "orderNumber", "termLength", "contractedBandwidth"]
model_config = ConfigDict(
populate_by_name=True,
@@ -95,7 +96,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"billingTier": obj.get("billingTier"),
"orderId": obj.get("orderId"),
"orderNumber": obj.get("orderNumber"),
- "termLength": obj.get("termLength") if obj.get("termLength") is not None else 1
+ "termLength": obj.get("termLength") if obj.get("termLength") is not None else 1,
+ "contractedBandwidth": obj.get("contractedBandwidth")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/port_request.py b/equinix/services/fabricv4/models/port_request.py
index 5a6ba155..b0c17d9f 100644
--- a/equinix/services/fabricv4/models/port_request.py
+++ b/equinix/services/fabricv4/models/port_request.py
@@ -16,8 +16,6 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
-from equinix.services.fabricv4.models.end_customer import EndCustomer
-from equinix.services.fabricv4.models.marketplace_subscription import MarketplaceSubscription
from equinix.services.fabricv4.models.package import Package
from equinix.services.fabricv4.models.physical_port import PhysicalPort
from equinix.services.fabricv4.models.port_additional_info import PortAdditionalInfo
@@ -79,12 +77,10 @@ class PortRequest(BaseModel):
physical_port_quantity: Optional[StrictInt] = Field(default=None, description="Number of physical ports", alias="physicalPortQuantity")
notifications: Optional[List[PortNotification]] = Field(default=None, description="Notification preferences")
additional_info: Optional[List[PortAdditionalInfo]] = Field(default=None, description="Port additional information", alias="additionalInfo")
- end_customer: Optional[EndCustomer] = Field(default=None, alias="endCustomer")
physical_ports: Optional[List[PhysicalPort]] = Field(default=None, description="Physical ports that implement this port", alias="physicalPorts")
loas: Optional[List[PortLoa]] = Field(default=None, description="Port Loas")
- marketplace_subscription: Optional[MarketplaceSubscription] = Field(default=None, alias="marketplaceSubscription")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["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"]
+ __properties: ClassVar[List[str]] = ["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"]
model_config = ConfigDict(
populate_by_name=True,
@@ -177,9 +173,6 @@ def to_dict(self) -> Dict[str, Any]:
if _item_additional_info:
_items.append(_item_additional_info.to_dict())
_dict['additionalInfo'] = _items
- # override the default output from pydantic by calling `to_dict()` of end_customer
- if self.end_customer:
- _dict['endCustomer'] = self.end_customer.to_dict()
# override the default output from pydantic by calling `to_dict()` of each item in physical_ports (list)
_items = []
if self.physical_ports:
@@ -194,9 +187,6 @@ def to_dict(self) -> Dict[str, Any]:
if _item_loas:
_items.append(_item_loas.to_dict())
_dict['loas'] = _items
- # override the default output from pydantic by calling `to_dict()` of marketplace_subscription
- if self.marketplace_subscription:
- _dict['marketplaceSubscription'] = self.marketplace_subscription.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -245,10 +235,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"physicalPortQuantity": obj.get("physicalPortQuantity"),
"notifications": [PortNotification.from_dict(_item) for _item in obj["notifications"]] if obj.get("notifications") is not None else None,
"additionalInfo": [PortAdditionalInfo.from_dict(_item) for _item in obj["additionalInfo"]] if obj.get("additionalInfo") is not None else None,
- "endCustomer": EndCustomer.from_dict(obj["endCustomer"]) if obj.get("endCustomer") is not None else None,
"physicalPorts": [PhysicalPort.from_dict(_item) for _item in obj["physicalPorts"]] if obj.get("physicalPorts") is not None else None,
- "loas": [PortLoa.from_dict(_item) for _item in obj["loas"]] if obj.get("loas") is not None else None,
- "marketplaceSubscription": MarketplaceSubscription.from_dict(obj["marketplaceSubscription"]) if obj.get("marketplaceSubscription") is not None else None
+ "loas": [PortLoa.from_dict(_item) for _item in obj["loas"]] if obj.get("loas") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/port_sort_by.py b/equinix/services/fabricv4/models/port_sort_by.py
index 627b9a67..95a334ae 100644
--- a/equinix/services/fabricv4/models/port_sort_by.py
+++ b/equinix/services/fabricv4/models/port_sort_by.py
@@ -23,6 +23,16 @@ class PortSortBy(str, Enum):
allowed enum values
"""
SLASH_DEVICE_SLASH_NAME = '/device/name'
+ SLASH_NAME = '/name'
+ SLASH_STATE = '/state'
+ SLASH_LOCATION_SLASH_METRO_NAME = '/location/metroName'
+ SLASH_DEMARCATION_POINT_IBX = '/demarcationPointIbx'
+ SLASH_DEVICE_SLASH_REDUNDANCY_SLASH_PRIORITY = '/device/redundancy/priority'
+ SLASH_LAG_ENABLED = '/lagEnabled'
+ SLASH_PHYSICAL_PORTS_SPEED = '/physicalPortsSpeed'
+ SLASH_ENCAPSULATION_SLASH_TYPE = '/encapsulation/type'
+ SLASH_PHYSICAL_PORTS_SLASH_TETHER_SLASH_CROSS_CONNECT_ID = '/physicalPorts/tether/crossConnectId'
+ SLASH_PACKAGE_SLASH_CODE = '/package/code'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/port_sort_criteria.py b/equinix/services/fabricv4/models/port_sort_criteria.py
index a2f24867..9c0f7433 100644
--- a/equinix/services/fabricv4/models/port_sort_criteria.py
+++ b/equinix/services/fabricv4/models/port_sort_criteria.py
@@ -25,7 +25,7 @@ class PortSortCriteria(BaseModel):
PortSortCriteria
""" # noqa: E501
direction: Optional[PortSortDirection] = PortSortDirection.DESC
- var_property: Optional[PortSortBy] = Field(default=PortSortBy.SLASH_DEVICE_SLASH_NAME, alias="property")
+ var_property: Optional[PortSortBy] = Field(default=PortSortBy.DEVICE_SLASH_NAME, alias="property")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["direction", "property"]
@@ -88,7 +88,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"direction": obj.get("direction") if obj.get("direction") is not None else PortSortDirection.DESC,
- "property": obj.get("property") if obj.get("property") is not None else PortSortBy.SLASH_DEVICE_SLASH_NAME
+ "property": obj.get("property") if obj.get("property") is not None else PortSortBy.DEVICE_SLASH_NAME
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/equinix/services/fabricv4/models/product_type.py b/equinix/services/fabricv4/models/product_type.py
index fd0c2c9d..fce2dd2c 100644
--- a/equinix/services/fabricv4/models/product_type.py
+++ b/equinix/services/fabricv4/models/product_type.py
@@ -27,6 +27,7 @@ class ProductType(str, Enum):
VIRTUAL_PORT_PRODUCT = 'VIRTUAL_PORT_PRODUCT'
CLOUD_ROUTER_PRODUCT = 'CLOUD_ROUTER_PRODUCT'
PRECISION_TIME_PRODUCT = 'PRECISION_TIME_PRODUCT'
+ METRO_CONNECT_PRODUCT = 'METRO_CONNECT_PRODUCT'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/provider_status.py b/equinix/services/fabricv4/models/provider_status.py
index f1d15fa8..0452db81 100644
--- a/equinix/services/fabricv4/models/provider_status.py
+++ b/equinix/services/fabricv4/models/provider_status.py
@@ -33,12 +33,7 @@ class ProviderStatus(str, Enum):
PROVISIONING = 'PROVISIONING'
REJECTED = 'REJECTED'
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'
PENDING_DELETE = 'PENDING DELETE'
diff --git a/equinix/services/fabricv4/models/ra_attachment_sort_item.py b/equinix/services/fabricv4/models/ra_attachment_sort_item.py
new file mode 100644
index 00000000..3d76c0b6
--- /dev/null
+++ b/equinix/services/fabricv4/models/ra_attachment_sort_item.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.ra_attachment_sort_item_property import RaAttachmentSortItemProperty
+from equinix.services.fabricv4.models.sort_item_direction import SortItemDirection
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RaAttachmentSortItem(BaseModel):
+ """
+ RaAttachmentSortItem
+ """ # noqa: E501
+ var_property: Optional[RaAttachmentSortItemProperty] = Field(default=RaAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME, alias="property")
+ direction: Optional[SortItemDirection] = SortItemDirection.DESC
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "direction"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RaAttachmentSortItem from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RaAttachmentSortItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property") if obj.get("property") is not None else RaAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME,
+ "direction": obj.get("direction") if obj.get("direction") is not None else SortItemDirection.DESC
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/ra_attachment_sort_item_property.py b/equinix/services/fabricv4/models/ra_attachment_sort_item_property.py
new file mode 100644
index 00000000..9480bcf5
--- /dev/null
+++ b/equinix/services/fabricv4/models/ra_attachment_sort_item_property.py
@@ -0,0 +1,36 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RaAttachmentSortItemProperty(str, Enum):
+ """
+ Possible field names to use on sorting
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_UUID = '/uuid'
+ SLASH_ATTACHMENT_STATUS = '/attachmentStatus'
+ SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
+ SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME = '/changeLog/updatedDateTime'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RaAttachmentSortItemProperty from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/rf_attachment_sort_item.py b/equinix/services/fabricv4/models/rf_attachment_sort_item.py
new file mode 100644
index 00000000..c89005a1
--- /dev/null
+++ b/equinix/services/fabricv4/models/rf_attachment_sort_item.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.rf_attachment_sort_item_property import RfAttachmentSortItemProperty
+from equinix.services.fabricv4.models.sort_item_direction import SortItemDirection
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RfAttachmentSortItem(BaseModel):
+ """
+ RfAttachmentSortItem
+ """ # noqa: E501
+ var_property: Optional[RfAttachmentSortItemProperty] = Field(default=RfAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME, alias="property")
+ direction: Optional[SortItemDirection] = SortItemDirection.DESC
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "direction"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RfAttachmentSortItem from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RfAttachmentSortItem from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property") if obj.get("property") is not None else RfAttachmentSortItemProperty.CHANGE_LOG_SLASH_UPDATED_DATE_TIME,
+ "direction": obj.get("direction") if obj.get("direction") is not None else SortItemDirection.DESC
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/rf_attachment_sort_item_property.py b/equinix/services/fabricv4/models/rf_attachment_sort_item_property.py
new file mode 100644
index 00000000..af65cb79
--- /dev/null
+++ b/equinix/services/fabricv4/models/rf_attachment_sort_item_property.py
@@ -0,0 +1,37 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RfAttachmentSortItemProperty(str, Enum):
+ """
+ Possible field names to use on sorting
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_UUID = '/uuid'
+ SLASH_DIRECTION = '/direction'
+ SLASH_ATTACHMENT_STATUS = '/attachmentStatus'
+ SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
+ SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME = '/changeLog/updatedDateTime'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RfAttachmentSortItemProperty from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_and_expression.py b/equinix/services/fabricv4/models/route_aggregation_rule_and_expression.py
new file mode 100644
index 00000000..755d174c
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_and_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRuleAndExpression(BaseModel):
+ """
+ AND expression containing multiple filter expressions
+ """ # noqa: E501
+ var_and: Optional[Annotated[List[RouteAggregationRuleExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="and")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["and"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleAndExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_and (list)
+ _items = []
+ if self.var_and:
+ for _item_var_and in self.var_and:
+ if _item_var_and:
+ _items.append(_item_var_and.to_dict())
+ _dict['and'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleAndExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "and": [RouteAggregationRuleExpression.from_dict(_item) for _item in obj["and"]] if obj.get("and") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.route_aggregation_rule_expression import RouteAggregationRuleExpression
+# TODO: Rewrite to not use raise_errors
+RouteAggregationRuleAndExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_expression.py b/equinix/services/fabricv4/models/route_aggregation_rule_expression.py
new file mode 100644
index 00000000..3c1c06cc
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_expression.py
@@ -0,0 +1,147 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.route_aggregation_rule_simple_expression import RouteAggregationRuleSimpleExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+ROUTEAGGREGATIONRULEEXPRESSION_ANY_OF_SCHEMAS = ["RouteAggregationRuleAndExpression", "RouteAggregationRuleOrExpression", "RouteAggregationRuleSimpleExpression"]
+
+class RouteAggregationRuleExpression(BaseModel):
+ """
+ Filter expression that can be AND, OR, or a simple expression
+ """
+
+ # data type: RouteAggregationRuleAndExpression
+ anyof_schema_1_validator: Optional[RouteAggregationRuleAndExpression] = None
+ # data type: RouteAggregationRuleOrExpression
+ anyof_schema_2_validator: Optional[RouteAggregationRuleOrExpression] = None
+ # data type: RouteAggregationRuleSimpleExpression
+ anyof_schema_3_validator: Optional[RouteAggregationRuleSimpleExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "RouteAggregationRuleAndExpression", "RouteAggregationRuleOrExpression", "RouteAggregationRuleSimpleExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = RouteAggregationRuleExpression.model_construct()
+ error_messages = []
+ # validate data type: RouteAggregationRuleAndExpression
+ if not isinstance(v, RouteAggregationRuleAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteAggregationRuleAndExpression`")
+ else:
+ return v
+
+ # validate data type: RouteAggregationRuleOrExpression
+ if not isinstance(v, RouteAggregationRuleOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteAggregationRuleOrExpression`")
+ else:
+ return v
+
+ # validate data type: RouteAggregationRuleSimpleExpression
+ if not isinstance(v, RouteAggregationRuleSimpleExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteAggregationRuleSimpleExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in RouteAggregationRuleExpression with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[RouteAggregationRuleAndExpression] = None
+ try:
+ instance.actual_instance = RouteAggregationRuleAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[RouteAggregationRuleOrExpression] = None
+ try:
+ instance.actual_instance = RouteAggregationRuleOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_3_validator: Optional[RouteAggregationRuleSimpleExpression] = None
+ try:
+ instance.actual_instance = RouteAggregationRuleSimpleExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into RouteAggregationRuleExpression with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression, RouteAggregationRuleSimpleExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+from equinix.services.fabricv4.models.route_aggregation_rule_and_expression import RouteAggregationRuleAndExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_or_expression import RouteAggregationRuleOrExpression
+# TODO: Rewrite to not use raise_errors
+RouteAggregationRuleExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_or_expression.py b/equinix/services/fabricv4/models/route_aggregation_rule_or_expression.py
new file mode 100644
index 00000000..054237f0
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_or_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRuleOrExpression(BaseModel):
+ """
+ OR expression containing multiple filter expressions
+ """ # noqa: E501
+ var_or: Optional[Annotated[List[RouteAggregationRuleExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="or")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["or"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleOrExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_or (list)
+ _items = []
+ if self.var_or:
+ for _item_var_or in self.var_or:
+ if _item_var_or:
+ _items.append(_item_var_or.to_dict())
+ _dict['or'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleOrExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "or": [RouteAggregationRuleExpression.from_dict(_item) for _item in obj["or"]] if obj.get("or") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.route_aggregation_rule_expression import RouteAggregationRuleExpression
+# TODO: Rewrite to not use raise_errors
+RouteAggregationRuleOrExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_simple_expression.py b/equinix/services/fabricv4/models/route_aggregation_rule_simple_expression.py
new file mode 100644
index 00000000..b921d144
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_simple_expression.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRuleSimpleExpression(BaseModel):
+ """
+ Simple filter expression with property, operator, and values
+ """ # noqa: E501
+ var_property: Optional[StrictStr] = Field(default=None, 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 ", alias="property")
+ operator: Optional[StrictStr] = Field(default=None, description="Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like ")
+ values: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=8)]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "operator", "values"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleSimpleExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleSimpleExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property"),
+ "operator": obj.get("operator"),
+ "values": obj.get("values")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_sort_by.py b/equinix/services/fabricv4/models/route_aggregation_rule_sort_by.py
new file mode 100644
index 00000000..32e2df90
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_sort_by.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RouteAggregationRuleSortBy(str, Enum):
+ """
+ Possible field names to use on sorting
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_UUID = '/uuid'
+ SLASH_NAME = '/name'
+ SLASH_STATE = '/state'
+ SLASH_PREFIX = '/prefix'
+ SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
+ SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME = '/changeLog/updatedDateTime'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RouteAggregationRuleSortBy from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_sort_criteria.py b/equinix/services/fabricv4/models/route_aggregation_rule_sort_criteria.py
new file mode 100644
index 00000000..87aa854c
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_sort_criteria.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_by import RouteAggregationRuleSortBy
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_direction import RouteAggregationRuleSortDirection
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRuleSortCriteria(BaseModel):
+ """
+ RouteAggregationRuleSortCriteria
+ """ # noqa: E501
+ direction: Optional[RouteAggregationRuleSortDirection] = RouteAggregationRuleSortDirection.DESC
+ var_property: Optional[RouteAggregationRuleSortBy] = Field(default=RouteAggregationRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME, alias="property")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["direction", "property"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleSortCriteria from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRuleSortCriteria from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction") if obj.get("direction") is not None else RouteAggregationRuleSortDirection.DESC,
+ "property": obj.get("property") if obj.get("property") is not None else RouteAggregationRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rule_sort_direction.py b/equinix/services/fabricv4/models/route_aggregation_rule_sort_direction.py
new file mode 100644
index 00000000..99f0f6fa
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rule_sort_direction.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RouteAggregationRuleSortDirection(str, Enum):
+ """
+ Sorting direction
+ """
+
+ """
+ allowed enum values
+ """
+ DESC = 'DESC'
+ ASC = 'ASC'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RouteAggregationRuleSortDirection from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rules_filter.py b/equinix/services/fabricv4/models/route_aggregation_rules_filter.py
new file mode 100644
index 00000000..aa3a5778
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rules_filter.py
@@ -0,0 +1,130 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.route_aggregation_rule_and_expression import RouteAggregationRuleAndExpression
+from equinix.services.fabricv4.models.route_aggregation_rule_or_expression import RouteAggregationRuleOrExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+ROUTEAGGREGATIONRULESFILTER_ANY_OF_SCHEMAS = ["RouteAggregationRuleAndExpression", "RouteAggregationRuleOrExpression"]
+
+class RouteAggregationRulesFilter(BaseModel):
+ """
+ Top-level filter that can be either an AND expression or OR expression
+ """
+
+ # data type: RouteAggregationRuleAndExpression
+ anyof_schema_1_validator: Optional[RouteAggregationRuleAndExpression] = None
+ # data type: RouteAggregationRuleOrExpression
+ anyof_schema_2_validator: Optional[RouteAggregationRuleOrExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "RouteAggregationRuleAndExpression", "RouteAggregationRuleOrExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = RouteAggregationRulesFilter.model_construct()
+ error_messages = []
+ # validate data type: RouteAggregationRuleAndExpression
+ if not isinstance(v, RouteAggregationRuleAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteAggregationRuleAndExpression`")
+ else:
+ return v
+
+ # validate data type: RouteAggregationRuleOrExpression
+ if not isinstance(v, RouteAggregationRuleOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteAggregationRuleOrExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in RouteAggregationRulesFilter with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[RouteAggregationRuleAndExpression] = None
+ try:
+ instance.actual_instance = RouteAggregationRuleAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[RouteAggregationRuleOrExpression] = None
+ try:
+ instance.actual_instance = RouteAggregationRuleOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into RouteAggregationRulesFilter with anyOf schemas: RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], RouteAggregationRuleAndExpression, RouteAggregationRuleOrExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rules_search_request.py b/equinix/services/fabricv4/models/route_aggregation_rules_search_request.py
new file mode 100644
index 00000000..90cd9a7b
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rules_search_request.py
@@ -0,0 +1,116 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.pagination_request import PaginationRequest
+from equinix.services.fabricv4.models.route_aggregation_rule_sort_criteria import RouteAggregationRuleSortCriteria
+from equinix.services.fabricv4.models.route_aggregation_rules_filter import RouteAggregationRulesFilter
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRulesSearchRequest(BaseModel):
+ """
+ Search route aggregation rules
+ """ # noqa: E501
+ filter: Optional[RouteAggregationRulesFilter] = None
+ pagination: Optional[PaginationRequest] = None
+ sort: Optional[List[RouteAggregationRuleSortCriteria]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["filter", "pagination", "sort"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRulesSearchRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of filter
+ if self.filter:
+ _dict['filter'] = self.filter.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in sort (list)
+ _items = []
+ if self.sort:
+ for _item_sort in self.sort:
+ if _item_sort:
+ _items.append(_item_sort.to_dict())
+ _dict['sort'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRulesSearchRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "filter": RouteAggregationRulesFilter.from_dict(obj["filter"]) if obj.get("filter") is not None else None,
+ "pagination": PaginationRequest.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "sort": [RouteAggregationRuleSortCriteria.from_dict(_item) for _item in obj["sort"]] if obj.get("sort") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_aggregation_rules_search_response.py b/equinix/services/fabricv4/models/route_aggregation_rules_search_response.py
new file mode 100644
index 00000000..38282497
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_aggregation_rules_search_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.pagination import Pagination
+from equinix.services.fabricv4.models.route_aggregation_rules_data import RouteAggregationRulesData
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteAggregationRulesSearchResponse(BaseModel):
+ """
+ RouteAggregationRulesSearchResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[RouteAggregationRulesData]] = Field(default=None, description="List of route aggregation rules")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteAggregationRulesSearchResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteAggregationRulesSearchResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [RouteAggregationRulesData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_and_expression.py b/equinix/services/fabricv4/models/route_filter_rule_and_expression.py
new file mode 100644
index 00000000..215bd039
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_and_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRuleAndExpression(BaseModel):
+ """
+ AND expression containing multiple filter expressions
+ """ # noqa: E501
+ var_and: Optional[Annotated[List[RouteFilterRuleExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="and")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["and"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleAndExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_and (list)
+ _items = []
+ if self.var_and:
+ for _item_var_and in self.var_and:
+ if _item_var_and:
+ _items.append(_item_var_and.to_dict())
+ _dict['and'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleAndExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "and": [RouteFilterRuleExpression.from_dict(_item) for _item in obj["and"]] if obj.get("and") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.route_filter_rule_expression import RouteFilterRuleExpression
+# TODO: Rewrite to not use raise_errors
+RouteFilterRuleAndExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_expression.py b/equinix/services/fabricv4/models/route_filter_rule_expression.py
new file mode 100644
index 00000000..d29b02bf
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_expression.py
@@ -0,0 +1,147 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.route_filter_rule_simple_expression import RouteFilterRuleSimpleExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+ROUTEFILTERRULEEXPRESSION_ANY_OF_SCHEMAS = ["RouteFilterRuleAndExpression", "RouteFilterRuleOrExpression", "RouteFilterRuleSimpleExpression"]
+
+class RouteFilterRuleExpression(BaseModel):
+ """
+ Filter expression that can be AND, OR, or a simple expression
+ """
+
+ # data type: RouteFilterRuleAndExpression
+ anyof_schema_1_validator: Optional[RouteFilterRuleAndExpression] = None
+ # data type: RouteFilterRuleOrExpression
+ anyof_schema_2_validator: Optional[RouteFilterRuleOrExpression] = None
+ # data type: RouteFilterRuleSimpleExpression
+ anyof_schema_3_validator: Optional[RouteFilterRuleSimpleExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "RouteFilterRuleAndExpression", "RouteFilterRuleOrExpression", "RouteFilterRuleSimpleExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = RouteFilterRuleExpression.model_construct()
+ error_messages = []
+ # validate data type: RouteFilterRuleAndExpression
+ if not isinstance(v, RouteFilterRuleAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteFilterRuleAndExpression`")
+ else:
+ return v
+
+ # validate data type: RouteFilterRuleOrExpression
+ if not isinstance(v, RouteFilterRuleOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteFilterRuleOrExpression`")
+ else:
+ return v
+
+ # validate data type: RouteFilterRuleSimpleExpression
+ if not isinstance(v, RouteFilterRuleSimpleExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteFilterRuleSimpleExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in RouteFilterRuleExpression with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[RouteFilterRuleAndExpression] = None
+ try:
+ instance.actual_instance = RouteFilterRuleAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[RouteFilterRuleOrExpression] = None
+ try:
+ instance.actual_instance = RouteFilterRuleOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_3_validator: Optional[RouteFilterRuleSimpleExpression] = None
+ try:
+ instance.actual_instance = RouteFilterRuleSimpleExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into RouteFilterRuleExpression with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], RouteFilterRuleAndExpression, RouteFilterRuleOrExpression, RouteFilterRuleSimpleExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+from equinix.services.fabricv4.models.route_filter_rule_and_expression import RouteFilterRuleAndExpression
+from equinix.services.fabricv4.models.route_filter_rule_or_expression import RouteFilterRuleOrExpression
+# TODO: Rewrite to not use raise_errors
+RouteFilterRuleExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_or_expression.py b/equinix/services/fabricv4/models/route_filter_rule_or_expression.py
new file mode 100644
index 00000000..4becbc36
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_or_expression.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRuleOrExpression(BaseModel):
+ """
+ OR expression containing multiple filter expressions
+ """ # noqa: E501
+ var_or: Optional[Annotated[List[RouteFilterRuleExpression], Field(min_length=1, max_length=8)]] = Field(default=None, alias="or")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["or"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleOrExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in var_or (list)
+ _items = []
+ if self.var_or:
+ for _item_var_or in self.var_or:
+ if _item_var_or:
+ _items.append(_item_var_or.to_dict())
+ _dict['or'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleOrExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "or": [RouteFilterRuleExpression.from_dict(_item) for _item in obj["or"]] if obj.get("or") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+from equinix.services.fabricv4.models.route_filter_rule_expression import RouteFilterRuleExpression
+# TODO: Rewrite to not use raise_errors
+RouteFilterRuleOrExpression.model_rebuild(raise_errors=False)
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_simple_expression.py b/equinix/services/fabricv4/models/route_filter_rule_simple_expression.py
new file mode 100644
index 00000000..6871e9c7
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_simple_expression.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRuleSimpleExpression(BaseModel):
+ """
+ Simple filter expression with property, operator, and values
+ """ # noqa: E501
+ var_property: Optional[StrictStr] = Field(default=None, 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 ", alias="property")
+ operator: Optional[StrictStr] = Field(default=None, description="Possible operators to use on filters: * `=` - equal * `!=` - not equal * `[NOT] LIKE` - (not) like * `[NOT] IN` - (not) in * `ILIKE` - case-insensitive like ")
+ values: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=8)]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["property", "operator", "values"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleSimpleExpression from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleSimpleExpression from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "property": obj.get("property"),
+ "operator": obj.get("operator"),
+ "values": obj.get("values")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_sort_by.py b/equinix/services/fabricv4/models/route_filter_rule_sort_by.py
new file mode 100644
index 00000000..6930a567
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_sort_by.py
@@ -0,0 +1,39 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RouteFilterRuleSortBy(str, Enum):
+ """
+ Possible field names to use on sorting
+ """
+
+ """
+ allowed enum values
+ """
+ SLASH_TYPE = '/type'
+ SLASH_UUID = '/uuid'
+ SLASH_NAME = '/name'
+ SLASH_STATE = '/state'
+ SLASH_PREFIX = '/prefix'
+ SLASH_PREFIX_MATCH = '/prefixMatch'
+ SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
+ SLASH_CHANGE_LOG_SLASH_UPDATED_DATE_TIME = '/changeLog/updatedDateTime'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RouteFilterRuleSortBy from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_sort_criteria.py b/equinix/services/fabricv4/models/route_filter_rule_sort_criteria.py
new file mode 100644
index 00000000..e7068ee3
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_sort_criteria.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.route_filter_rule_sort_by import RouteFilterRuleSortBy
+from equinix.services.fabricv4.models.route_filter_rule_sort_direction import RouteFilterRuleSortDirection
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRuleSortCriteria(BaseModel):
+ """
+ RouteFilterRuleSortCriteria
+ """ # noqa: E501
+ direction: Optional[RouteFilterRuleSortDirection] = RouteFilterRuleSortDirection.DESC
+ var_property: Optional[RouteFilterRuleSortBy] = Field(default=RouteFilterRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME, alias="property")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["direction", "property"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleSortCriteria from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRuleSortCriteria from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "direction": obj.get("direction") if obj.get("direction") is not None else RouteFilterRuleSortDirection.DESC,
+ "property": obj.get("property") if obj.get("property") is not None else RouteFilterRuleSortBy.CHANGE_LOG_SLASH_UPDATED_DATE_TIME
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rule_sort_direction.py b/equinix/services/fabricv4/models/route_filter_rule_sort_direction.py
new file mode 100644
index 00000000..9a60dd3e
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rule_sort_direction.py
@@ -0,0 +1,33 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RouteFilterRuleSortDirection(str, Enum):
+ """
+ Sorting direction
+ """
+
+ """
+ allowed enum values
+ """
+ DESC = 'DESC'
+ ASC = 'ASC'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RouteFilterRuleSortDirection from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rules_filter.py b/equinix/services/fabricv4/models/route_filter_rules_filter.py
new file mode 100644
index 00000000..aee13ca6
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rules_filter.py
@@ -0,0 +1,130 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+from inspect import getfullargspec
+import json
+import pprint
+import re # noqa: F401
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Optional
+from equinix.services.fabricv4.models.route_filter_rule_and_expression import RouteFilterRuleAndExpression
+from equinix.services.fabricv4.models.route_filter_rule_or_expression import RouteFilterRuleOrExpression
+from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
+from typing_extensions import Literal, Self
+from pydantic import Field
+
+ROUTEFILTERRULESFILTER_ANY_OF_SCHEMAS = ["RouteFilterRuleAndExpression", "RouteFilterRuleOrExpression"]
+
+class RouteFilterRulesFilter(BaseModel):
+ """
+ Top-level filter that can be either an AND expression or OR expression
+ """
+
+ # data type: RouteFilterRuleAndExpression
+ anyof_schema_1_validator: Optional[RouteFilterRuleAndExpression] = None
+ # data type: RouteFilterRuleOrExpression
+ anyof_schema_2_validator: Optional[RouteFilterRuleOrExpression] = None
+ if TYPE_CHECKING:
+ actual_instance: Optional[Union[RouteFilterRuleAndExpression, RouteFilterRuleOrExpression]] = None
+ else:
+ actual_instance: Any = None
+ any_of_schemas: Set[str] = { "RouteFilterRuleAndExpression", "RouteFilterRuleOrExpression" }
+
+ model_config = {
+ "validate_assignment": True,
+ "protected_namespaces": (),
+ }
+
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_anyof(cls, v):
+ instance = RouteFilterRulesFilter.model_construct()
+ error_messages = []
+ # validate data type: RouteFilterRuleAndExpression
+ if not isinstance(v, RouteFilterRuleAndExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteFilterRuleAndExpression`")
+ else:
+ return v
+
+ # validate data type: RouteFilterRuleOrExpression
+ if not isinstance(v, RouteFilterRuleOrExpression):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `RouteFilterRuleOrExpression`")
+ else:
+ return v
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when setting the actual_instance in RouteFilterRulesFilter with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return v
+
+ @classmethod
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
+ return cls.from_json(json.dumps(obj))
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ # anyof_schema_1_validator: Optional[RouteFilterRuleAndExpression] = None
+ try:
+ instance.actual_instance = RouteFilterRuleAndExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # anyof_schema_2_validator: Optional[RouteFilterRuleOrExpression] = None
+ try:
+ instance.actual_instance = RouteFilterRuleOrExpression.from_json(json_str)
+ return instance
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if error_messages:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into RouteFilterRulesFilter with anyOf schemas: RouteFilterRuleAndExpression, RouteFilterRuleOrExpression. Details: " + ", ".join(error_messages))
+ else:
+ return instance
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], RouteFilterRuleAndExpression, RouteFilterRuleOrExpression]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
+
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ return self.actual_instance
+
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rules_search_request.py b/equinix/services/fabricv4/models/route_filter_rules_search_request.py
new file mode 100644
index 00000000..4b9c0799
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rules_search_request.py
@@ -0,0 +1,116 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.pagination_request import PaginationRequest
+from equinix.services.fabricv4.models.route_filter_rule_sort_criteria import RouteFilterRuleSortCriteria
+from equinix.services.fabricv4.models.route_filter_rules_filter import RouteFilterRulesFilter
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRulesSearchRequest(BaseModel):
+ """
+ Search route filter rules
+ """ # noqa: E501
+ filter: Optional[RouteFilterRulesFilter] = None
+ pagination: Optional[PaginationRequest] = None
+ sort: Optional[List[RouteFilterRuleSortCriteria]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["filter", "pagination", "sort"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRulesSearchRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of filter
+ if self.filter:
+ _dict['filter'] = self.filter.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in sort (list)
+ _items = []
+ if self.sort:
+ for _item_sort in self.sort:
+ if _item_sort:
+ _items.append(_item_sort.to_dict())
+ _dict['sort'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRulesSearchRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "filter": RouteFilterRulesFilter.from_dict(obj["filter"]) if obj.get("filter") is not None else None,
+ "pagination": PaginationRequest.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "sort": [RouteFilterRuleSortCriteria.from_dict(_item) for _item in obj["sort"]] if obj.get("sort") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/route_filter_rules_search_response.py b/equinix/services/fabricv4/models/route_filter_rules_search_response.py
new file mode 100644
index 00000000..73cbad4e
--- /dev/null
+++ b/equinix/services/fabricv4/models/route_filter_rules_search_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.pagination import Pagination
+from equinix.services.fabricv4.models.route_filter_rules_data import RouteFilterRulesData
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RouteFilterRulesSearchResponse(BaseModel):
+ """
+ RouteFilterRulesSearchResponse
+ """ # noqa: E501
+ pagination: Optional[Pagination] = None
+ data: Optional[List[RouteFilterRulesData]] = Field(default=None, description="List of route filter rules")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["pagination", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of RouteFilterRulesSearchResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of pagination
+ if self.pagination:
+ _dict['pagination'] = self.pagination.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RouteFilterRulesSearchResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "pagination": Pagination.from_dict(obj["pagination"]) if obj.get("pagination") is not None else None,
+ "data": [RouteFilterRulesData.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/search_field_name.py b/equinix/services/fabricv4/models/search_field_name.py
index 67f53465..61be8bd6 100644
--- a/equinix/services/fabricv4/models/search_field_name.py
+++ b/equinix/services/fabricv4/models/search_field_name.py
@@ -31,8 +31,6 @@ class SearchFieldName(str, Enum):
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_ACCOUNT_SLASH_ACCOUNT_NAME = '/aSide/accessPoint/account/accountName'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_ACCOUNT_SLASH_ACCOUNT_NUMBER = '/aSide/accessPoint/account/accountNumber'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_ROUTER_SLASH_UUID = '/aSide/accessPoint/router/uuid'
- SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG = '/aSide/accessPoint/linkProtocol/vlanCTag'
- SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG = '/aSide/accessPoint/linkProtocol/vlanSTag'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MIN = '/aSide/accessPoint/linkProtocol/vlanTagMin'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MAX = '/aSide/accessPoint/linkProtocol/vlanTagMax'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_CODE = '/aSide/accessPoint/location/metroCode'
@@ -44,7 +42,10 @@ class SearchFieldName(str, Enum):
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_VIRTUAL_DEVICE_SLASH_NAME = '/aSide/accessPoint/virtualDevice/name'
SLASH_A_SIDE_SLASH_ACCESS_POINT_SLASH_VIRTUAL_DEVICE_SLASH_UUID = '/aSide/accessPoint/virtualDevice/uuid'
SLASH_A_SIDE_SLASH_SERVICE_TOKEN_SLASH_UUID = '/aSide/serviceToken/uuid'
+ SLASH_BANDWIDTH = '/bandwidth'
SLASH_CHANGE_SLASH_STATUS = '/change/status'
+ SLASH_CHANGE_LOG_SLASH_CREATED_BY = '/changeLog/createdBy'
+ SLASH_CHANGE_LOG_SLASH_CREATED_DATE_TIME = '/changeLog/createdDateTime'
SLASH_OPERATION_SLASH_EQUINIX_STATUS = '/operation/equinixStatus'
SLASH_OPERATION_SLASH_PROVIDER_STATUS = '/operation/providerStatus'
SLASH_PROJECT_SLASH_PROJECT_ID = '/project/projectId'
@@ -52,8 +53,6 @@ class SearchFieldName(str, Enum):
SLASH_REDUNDANCY_SLASH_PRIORITY = '/redundancy/priority'
SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_ACCOUNT_SLASH_ACCOUNT_NAME = '/zSide/accessPoint/account/accountName'
SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_AUTHENTICATION_KEY = '/zSide/accessPoint/authenticationKey'
- SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_C_TAG = '/zSide/accessPoint/linkProtocol/vlanCTag'
- SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_S_TAG = '/zSide/accessPoint/linkProtocol/vlanSTag'
SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MIN = '/zSide/accessPoint/linkProtocol/vlanTagMin'
SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LINK_PROTOCOL_SLASH_VLAN_TAG_MAX = '/zSide/accessPoint/linkProtocol/vlanTagMax'
SLASH_Z_SIDE_SLASH_ACCESS_POINT_SLASH_LOCATION_SLASH_METRO_CODE = '/zSide/accessPoint/location/metroCode'
diff --git a/equinix/services/fabricv4/models/service_profile.py b/equinix/services/fabricv4/models/service_profile.py
index 857fbfd2..7cc3b282 100644
--- a/equinix/services/fabricv4/models/service_profile.py
+++ b/equinix/services/fabricv4/models/service_profile.py
@@ -23,6 +23,7 @@
from equinix.services.fabricv4.models.service_profile_access_point_colo import ServiceProfileAccessPointCOLO
from equinix.services.fabricv4.models.service_profile_access_point_type import ServiceProfileAccessPointType
from equinix.services.fabricv4.models.service_profile_access_point_vd import ServiceProfileAccessPointVD
+from equinix.services.fabricv4.models.service_profile_change import ServiceProfileChange
from equinix.services.fabricv4.models.service_profile_state_enum import ServiceProfileStateEnum
from equinix.services.fabricv4.models.service_profile_type_enum import ServiceProfileTypeEnum
from equinix.services.fabricv4.models.service_profile_visibility_enum import ServiceProfileVisibilityEnum
@@ -37,6 +38,7 @@ class ServiceProfile(BaseModel):
state: Optional[ServiceProfileStateEnum] = None
account: Optional[Any] = Field(default=None, description="Seller Account for Service Profile.")
project: Optional[Project] = None
+ change: Optional[ServiceProfileChange] = None
change_log: Optional[Any] = Field(default=None, description="Seller Account for Service Profile.", alias="changeLog")
href: Optional[StrictStr] = Field(default=None, description="Service Profile URI response attribute")
type: Optional[ServiceProfileTypeEnum] = None
diff --git a/equinix/services/fabricv4/models/service_profile_action_request.py b/equinix/services/fabricv4/models/service_profile_action_request.py
new file mode 100644
index 00000000..2d591fc2
--- /dev/null
+++ b/equinix/services/fabricv4/models/service_profile_action_request.py
@@ -0,0 +1,98 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServiceProfileActionRequest(BaseModel):
+ """
+ Service Profile Action Request
+ """ # noqa: E501
+ type: StrictStr = Field(description="Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION")
+ description: Optional[StrictStr] = Field(default=None, description="Action description")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["type", "description"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ServiceProfileActionRequest from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ServiceProfileActionRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "description": obj.get("description")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/service_profile_action_response.py b/equinix/services/fabricv4/models/service_profile_action_response.py
new file mode 100644
index 00000000..d88b7c24
--- /dev/null
+++ b/equinix/services/fabricv4/models/service_profile_action_response.py
@@ -0,0 +1,110 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.changelog import Changelog
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServiceProfileActionResponse(BaseModel):
+ """
+ Service Profile Action Response
+ """ # noqa: E501
+ href: Optional[StrictStr] = Field(default=None, description="Service Profile Action URI")
+ type: Optional[StrictStr] = Field(default=None, description="Action type. Example values: PROFILE_UPDATE_ACCEPTANCE, PROFILE_UPDATE_REJECTION")
+ uuid: Optional[StrictStr] = Field(default=None, description="Equinix-assigned action identifier")
+ comments: Optional[StrictStr] = Field(default=None, description="Action comments")
+ change_log: Optional[Changelog] = Field(default=None, alias="changeLog")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["href", "type", "uuid", "comments", "changeLog"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ServiceProfileActionResponse from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * OpenAPI `readOnly` fields are excluded.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "href",
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of change_log
+ if self.change_log:
+ _dict['changeLog'] = self.change_log.to_dict()
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ServiceProfileActionResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "href": obj.get("href"),
+ "type": obj.get("type"),
+ "uuid": obj.get("uuid"),
+ "comments": obj.get("comments"),
+ "changeLog": Changelog.from_dict(obj["changeLog"]) if obj.get("changeLog") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/service_profile_change.py b/equinix/services/fabricv4/models/service_profile_change.py
new file mode 100644
index 00000000..278da6fb
--- /dev/null
+++ b/equinix/services/fabricv4/models/service_profile_change.py
@@ -0,0 +1,118 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from equinix.services.fabricv4.models.json_patch_operation import JsonPatchOperation
+from equinix.services.fabricv4.models.service_profile_change_status import ServiceProfileChangeStatus
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ServiceProfileChange(BaseModel):
+ """
+ Current state of latest service profile change
+ """ # noqa: E501
+ uuid: Optional[StrictStr] = Field(default=None, description="Uniquely identifies a change")
+ type: StrictStr = Field(description="Type of change")
+ status: Optional[ServiceProfileChangeStatus] = None
+ created_date_time: datetime = Field(description="Set when change flow starts", alias="createdDateTime")
+ updated_date_time: Optional[datetime] = Field(default=None, description="Set when change object is updated", alias="updatedDateTime")
+ information: Optional[StrictStr] = Field(default=None, description="Additional information")
+ data: Optional[List[JsonPatchOperation]] = None
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["uuid", "type", "status", "createdDateTime", "updatedDateTime", "information", "data"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ServiceProfileChange from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of each item in data (list)
+ _items = []
+ if self.data:
+ for _item_data in self.data:
+ if _item_data:
+ _items.append(_item_data.to_dict())
+ _dict['data'] = _items
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ServiceProfileChange from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "uuid": obj.get("uuid"),
+ "type": obj.get("type"),
+ "status": obj.get("status"),
+ "createdDateTime": obj.get("createdDateTime"),
+ "updatedDateTime": obj.get("updatedDateTime"),
+ "information": obj.get("information"),
+ "data": [JsonPatchOperation.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4/models/change_status.py b/equinix/services/fabricv4/models/service_profile_change_status.py
similarity index 83%
rename from equinix/services/fabricv4/models/change_status.py
rename to equinix/services/fabricv4/models/service_profile_change_status.py
index b6f75a33..899885d7 100644
--- a/equinix/services/fabricv4/models/change_status.py
+++ b/equinix/services/fabricv4/models/service_profile_change_status.py
@@ -14,7 +14,7 @@
from typing_extensions import Self
-class ChangeStatus(str, Enum):
+class ServiceProfileChangeStatus(str, Enum):
"""
Current outcome of the change flow
"""
@@ -31,7 +31,7 @@ class ChangeStatus(str, Enum):
@classmethod
def from_json(cls, json_str: str) -> Self:
- """Create an instance of ChangeStatus from a JSON string"""
+ """Create an instance of ServiceProfileChangeStatus from a JSON string"""
return cls(json.loads(json_str))
diff --git a/equinix/services/fabricv4/models/service_token_search_expression.py b/equinix/services/fabricv4/models/service_token_search_expression.py
index e90df702..af105ef6 100644
--- a/equinix/services/fabricv4/models/service_token_search_expression.py
+++ b/equinix/services/fabricv4/models/service_token_search_expression.py
@@ -25,11 +25,12 @@ class ServiceTokenSearchExpression(BaseModel):
ServiceTokenSearchExpression
""" # noqa: E501
var_and: Optional[List[ServiceTokenSearchExpression]] = Field(default=None, alias="and")
+ var_or: Optional[List[ServiceTokenSearchExpression]] = Field(default=None, alias="or")
var_property: Optional[ServiceTokenSearchFieldName] = Field(default=None, alias="property")
operator: Optional[ServiceTokenSearchExpressionOperator] = None
values: Optional[List[StrictStr]] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["and", "property", "operator", "values"]
+ __properties: ClassVar[List[str]] = ["and", "or", "property", "operator", "values"]
model_config = ConfigDict(
populate_by_name=True,
@@ -79,6 +80,13 @@ def to_dict(self) -> Dict[str, Any]:
if _item_var_and:
_items.append(_item_var_and.to_dict())
_dict['and'] = _items
+ # override the default output from pydantic by calling `to_dict()` of each item in var_or (list)
+ _items = []
+ if self.var_or:
+ for _item_var_or in self.var_or:
+ if _item_var_or:
+ _items.append(_item_var_or.to_dict())
+ _dict['or'] = _items
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -97,6 +105,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"and": [ServiceTokenSearchExpression.from_dict(_item) for _item in obj["and"]] if obj.get("and") is not None else None,
+ "or": [ServiceTokenSearchExpression.from_dict(_item) for _item in obj["or"]] if obj.get("or") is not None else None,
"property": obj.get("property"),
"operator": obj.get("operator"),
"values": obj.get("values")
diff --git a/equinix/services/fabricv4/models/simplified_notification_type.py b/equinix/services/fabricv4/models/simplified_notification_type.py
index 7fbbe60a..734b13c4 100644
--- a/equinix/services/fabricv4/models/simplified_notification_type.py
+++ b/equinix/services/fabricv4/models/simplified_notification_type.py
@@ -28,6 +28,8 @@ class SimplifiedNotificationType(str, Enum):
PROFILE_LIFECYCLE = 'PROFILE_LIFECYCLE'
ALL = 'ALL'
SALES_REP_NOTIFICATIONS = 'SALES_REP_NOTIFICATIONS'
+ TECHNICAL = 'TECHNICAL'
+ ORDERING = 'ORDERING'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/equinix/services/fabricv4/models/sort.py b/equinix/services/fabricv4/models/sort.py
index 0720d108..a0589400 100644
--- a/equinix/services/fabricv4/models/sort.py
+++ b/equinix/services/fabricv4/models/sort.py
@@ -23,7 +23,7 @@ class Sort(BaseModel):
"""
Sort
""" # noqa: E501
- var_property: Optional[StrictStr] = Field(default=None, description="Property to sort by", alias="property")
+ var_property: Optional[StrictStr] = Field(default=None, description="Property to sort by((currently supports tags with filter syntax)", alias="property")
direction: Optional[CompanyProfileSortDirection] = CompanyProfileSortDirection.ASC
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["property", "direction"]
diff --git a/equinix/services/fabricv4/models/tool_call_information_inner.py b/equinix/services/fabricv4/models/tool_call_information_inner.py
new file mode 100644
index 00000000..ab52fb15
--- /dev/null
+++ b/equinix/services/fabricv4/models/tool_call_information_inner.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Equinix Fabric API v4
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ToolCallInformationInner(BaseModel):
+ """
+ ToolCallInformationInner
+ """ # noqa: E501
+ name: Optional[StrictStr] = Field(default=None, description="Name of tools called")
+ input: Optional[StrictStr] = Field(default=None, description="Content of the tool request")
+ response: Optional[StrictStr] = Field(default=None, description="Content of the tool response")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["name", "input", "response"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ToolCallInformationInner from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ToolCallInformationInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "name": obj.get("name"),
+ "input": obj.get("input"),
+ "response": obj.get("response")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/equinix/services/fabricv4_README.md b/equinix/services/fabricv4_README.md
index 48d04939..64e2cb19 100644
--- a/equinix/services/fabricv4_README.md
+++ b/equinix/services/fabricv4_README.md
@@ -3,7 +3,7 @@ Equinix Fabric is an advanced software-defined interconnection solution that ena
The `equinix.services.fabricv4` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
-- API version: 4.27
+- API version: 4.28
- Package version: 0.15.0
- Generator version: 7.12.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
@@ -55,16 +55,18 @@ configuration = equinix.services.fabricv4.Configuration(
# Enter a context with an instance of the API client
with equinix.services.fabricv4.ApiClient(configuration) as api_client:
# Create an instance of the API class
- api_instance = equinix.services.fabricv4.CloudEventsApi(api_client)
- cloud_event_id = 'cloud_event_id_example' # str | Cloud Event UUID
+ api_instance = equinix.services.fabricv4.AgentTemplatesApi(api_client)
+ agent_template_id = 'agent_template_id_example' # str | Agent Template UUID
+ offset = 1 # int | offset (optional)
+ limit = 10 # int | number of records to fetch (optional)
try:
- # Get Cloud Event
- api_response = api_instance.get_cloud_event(cloud_event_id)
- print("The response of CloudEventsApi->get_cloud_event:\n")
+ # Get Agent Template by UUID
+ api_response = api_instance.get_agent_template_by_uuid(agent_template_id, offset=offset, limit=limit)
+ print("The response of AgentTemplatesApi->get_agent_template_by_uuid:\n")
pprint(api_response)
except ApiException as e:
- print("Exception when calling CloudEventsApi->get_cloud_event: %s\n" % e)
+ print("Exception when calling AgentTemplatesApi->get_agent_template_by_uuid: %s\n" % e)
```
@@ -74,6 +76,14 @@ All URIs are relative to *https://api.equinix.com*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
+*AgentTemplatesApi* | [**get_agent_template_by_uuid**](equinix/services/fabricv4/docs/AgentTemplatesApi.md#get_agent_template_by_uuid) | **GET** /fabric/v4/agentTemplates/{agentTemplateId} | Get Agent Template by UUID
+*AgentTemplatesApi* | [**get_agent_templates**](equinix/services/fabricv4/docs/AgentTemplatesApi.md#get_agent_templates) | **GET** /fabric/v4/agentTemplates | Get Agent Templates
+*AgentsApi* | [**create_agent**](equinix/services/fabricv4/docs/AgentsApi.md#create_agent) | **POST** /fabric/v4/agents | Create Agent
+*AgentsApi* | [**delete_agent_by_uuid**](equinix/services/fabricv4/docs/AgentsApi.md#delete_agent_by_uuid) | **DELETE** /fabric/v4/agents/{agentId} | Delete Agent by UUID
+*AgentsApi* | [**get_agent_activities**](equinix/services/fabricv4/docs/AgentsApi.md#get_agent_activities) | **GET** /fabric/v4/agents/{agentId}/activities | Get Agent Activities
+*AgentsApi* | [**get_agent_by_uuid**](equinix/services/fabricv4/docs/AgentsApi.md#get_agent_by_uuid) | **GET** /fabric/v4/agents/{agentId} | Get Agent by UUID
+*AgentsApi* | [**get_agents**](equinix/services/fabricv4/docs/AgentsApi.md#get_agents) | **GET** /fabric/v4/agents | Get Agents
+*AgentsApi* | [**patch_agent_by_uuid**](equinix/services/fabricv4/docs/AgentsApi.md#patch_agent_by_uuid) | **PATCH** /fabric/v4/agents/{agentId} | Update Agent by UUID
*CloudEventsApi* | [**get_cloud_event**](equinix/services/fabricv4/docs/CloudEventsApi.md#get_cloud_event) | **GET** /fabric/v4/cloudevents/{cloudEventId} | Get Cloud Event
*CloudEventsApi* | [**get_cloud_event_by_asset_id**](equinix/services/fabricv4/docs/CloudEventsApi.md#get_cloud_event_by_asset_id) | **GET** /fabric/v4/{asset}/{assetId}/cloudevents | Get Cloud Events by Asset Id
*CloudEventsApi* | [**search_cloud_events**](equinix/services/fabricv4/docs/CloudEventsApi.md#search_cloud_events) | **POST** /fabric/v4/cloudevents/search | Search Cloud Events
@@ -161,6 +171,7 @@ Class | Method | HTTP request | Description
*RouteAggregationRulesApi* | [**get_route_aggregation_rules**](equinix/services/fabricv4/docs/RouteAggregationRulesApi.md#get_route_aggregation_rules) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules | GetRARules
*RouteAggregationRulesApi* | [**patch_route_aggregation_rule_by_uuid**](equinix/services/fabricv4/docs/RouteAggregationRulesApi.md#patch_route_aggregation_rule_by_uuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | PatchRARule
*RouteAggregationRulesApi* | [**replace_route_aggregation_rule_by_uuid**](equinix/services/fabricv4/docs/RouteAggregationRulesApi.md#replace_route_aggregation_rule_by_uuid) | **PUT** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/{routeAggregationRuleId} | ReplaceRARule
+*RouteAggregationRulesApi* | [**search_route_aggregation_rules**](equinix/services/fabricv4/docs/RouteAggregationRulesApi.md#search_route_aggregation_rules) | **POST** /fabric/v4/routeAggregations/{routeAggregationId}/routeAggregationRules/search | Search Route Aggregation Rules
*RouteAggregationsApi* | [**attach_connection_route_aggregation**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#attach_connection_route_aggregation) | **PUT** /fabric/v4/connections/{connectionId}/routeAggregations/{routeAggregationId} | Attach Aggregation
*RouteAggregationsApi* | [**create_route_aggregation**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#create_route_aggregation) | **POST** /fabric/v4/routeAggregations | Create Aggregations
*RouteAggregationsApi* | [**delete_route_aggregation_by_uuid**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#delete_route_aggregation_by_uuid) | **DELETE** /fabric/v4/routeAggregations/{routeAggregationId} | Delete Aggregation
@@ -172,6 +183,7 @@ Class | Method | HTTP request | Description
*RouteAggregationsApi* | [**get_route_aggregation_changes**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#get_route_aggregation_changes) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/changes | Get All Changes
*RouteAggregationsApi* | [**get_route_aggregation_connections**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#get_route_aggregation_connections) | **GET** /fabric/v4/routeAggregations/{routeAggregationId}/connections | Get All Connections on Route Aggregation
*RouteAggregationsApi* | [**patch_route_aggregation_by_uuid**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#patch_route_aggregation_by_uuid) | **PATCH** /fabric/v4/routeAggregations/{routeAggregationId} | Patch Aggregation
+*RouteAggregationsApi* | [**search_cloud_router_route_aggregation_attachments**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#search_cloud_router_route_aggregation_attachments) | **POST** /fabric/v4/routers/{routerId}/routeAggregations/search | Search Cloud Router Route Aggregation Attachments
*RouteAggregationsApi* | [**search_route_aggregations**](equinix/services/fabricv4/docs/RouteAggregationsApi.md#search_route_aggregations) | **POST** /fabric/v4/routeAggregations/search | Search Aggregations
*RouteFilterRulesApi* | [**create_route_filter_rule**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#create_route_filter_rule) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Create Route Filter Rule
*RouteFilterRulesApi* | [**create_route_filter_rules_in_bulk**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#create_route_filter_rules_in_bulk) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/bulk | Bulk Create Route Filter Rules
@@ -182,6 +194,7 @@ Class | Method | HTTP request | Description
*RouteFilterRulesApi* | [**get_route_filter_rules**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#get_route_filter_rules) | **GET** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules | Get Route Filter Rules
*RouteFilterRulesApi* | [**patch_route_filter_rule_by_uuid**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#patch_route_filter_rule_by_uuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Patch Route Filter Rule
*RouteFilterRulesApi* | [**replace_route_filter_rule_by_uuid**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#replace_route_filter_rule_by_uuid) | **PUT** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/{routeFilterRuleId} | Replace Route Filter Rule
+*RouteFilterRulesApi* | [**search_route_filter_rules**](equinix/services/fabricv4/docs/RouteFilterRulesApi.md#search_route_filter_rules) | **POST** /fabric/v4/routeFilters/{routeFilterId}/routeFilterRules/search | Search Route Filter Rules
*RouteFiltersApi* | [**attach_connection_route_filter**](equinix/services/fabricv4/docs/RouteFiltersApi.md#attach_connection_route_filter) | **PUT** /fabric/v4/connections/{connectionId}/routeFilters/{routeFilterId} | Attach Route Filter
*RouteFiltersApi* | [**create_route_filter**](equinix/services/fabricv4/docs/RouteFiltersApi.md#create_route_filter) | **POST** /fabric/v4/routeFilters | Create Route Filters
*RouteFiltersApi* | [**delete_route_filter_by_uuid**](equinix/services/fabricv4/docs/RouteFiltersApi.md#delete_route_filter_by_uuid) | **DELETE** /fabric/v4/routeFilters/{routeFilterId} | Delete Route Filter
@@ -193,6 +206,7 @@ Class | Method | HTTP request | Description
*RouteFiltersApi* | [**get_route_filter_changes**](equinix/services/fabricv4/docs/RouteFiltersApi.md#get_route_filter_changes) | **GET** /fabric/v4/routeFilters/{routeFilterId}/changes | Get All Changes
*RouteFiltersApi* | [**get_route_filter_connections**](equinix/services/fabricv4/docs/RouteFiltersApi.md#get_route_filter_connections) | **GET** /fabric/v4/routeFilters/{routeFilterId}/connections | Get All Connections on Route Filter
*RouteFiltersApi* | [**patch_route_filter_by_uuid**](equinix/services/fabricv4/docs/RouteFiltersApi.md#patch_route_filter_by_uuid) | **PATCH** /fabric/v4/routeFilters/{routeFilterId} | Patch Route Filter
+*RouteFiltersApi* | [**search_cloud_router_route_filter_attachments**](equinix/services/fabricv4/docs/RouteFiltersApi.md#search_cloud_router_route_filter_attachments) | **POST** /fabric/v4/routers/{routerId}/routeFilters/search | Search Cloud Router Route Filter Attachments
*RouteFiltersApi* | [**search_route_filters**](equinix/services/fabricv4/docs/RouteFiltersApi.md#search_route_filters) | **POST** /fabric/v4/routeFilters/search | Search Route Filters
*RoutingProtocolsApi* | [**create_connection_routing_protocol**](equinix/services/fabricv4/docs/RoutingProtocolsApi.md#create_connection_routing_protocol) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols | Create Protocol
*RoutingProtocolsApi* | [**create_connection_routing_protocols_in_bulk**](equinix/services/fabricv4/docs/RoutingProtocolsApi.md#create_connection_routing_protocols_in_bulk) | **POST** /fabric/v4/connections/{connectionId}/routingProtocols/bulk | Bulk Create Protocol
@@ -208,6 +222,7 @@ Class | Method | HTTP request | Description
*RoutingProtocolsApi* | [**replace_connection_routing_protocol_by_uuid**](equinix/services/fabricv4/docs/RoutingProtocolsApi.md#replace_connection_routing_protocol_by_uuid) | **PUT** /fabric/v4/connections/{connectionId}/routingProtocols/{routingProtocolId} | Replace Protocol
*RoutingProtocolsApi* | [**validate_routing_protocol**](equinix/services/fabricv4/docs/RoutingProtocolsApi.md#validate_routing_protocol) | **POST** /fabric/v4/routers/{routerId}/validate | Validate Subnet
*ServiceProfilesApi* | [**create_service_profile**](equinix/services/fabricv4/docs/ServiceProfilesApi.md#create_service_profile) | **POST** /fabric/v4/serviceProfiles | Create Profile
+*ServiceProfilesApi* | [**create_service_profile_action**](equinix/services/fabricv4/docs/ServiceProfilesApi.md#create_service_profile_action) | **POST** /fabric/v4/serviceProfiles/{serviceProfileId}/actions | Profile Actions
*ServiceProfilesApi* | [**delete_service_profile_by_uuid**](equinix/services/fabricv4/docs/ServiceProfilesApi.md#delete_service_profile_by_uuid) | **DELETE** /fabric/v4/serviceProfiles/{serviceProfileId} | Delete Profile
*ServiceProfilesApi* | [**get_service_profile_by_uuid**](equinix/services/fabricv4/docs/ServiceProfilesApi.md#get_service_profile_by_uuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId} | Get Profile
*ServiceProfilesApi* | [**get_service_profile_metros_by_uuid**](equinix/services/fabricv4/docs/ServiceProfilesApi.md#get_service_profile_metros_by_uuid) | **GET** /fabric/v4/serviceProfiles/{serviceProfileId}/metros | Get Profile Metros
@@ -225,7 +240,7 @@ Class | Method | HTTP request | Description
*StatisticsApi* | [**get_connection_stats_by_port_uuid**](equinix/services/fabricv4/docs/StatisticsApi.md#get_connection_stats_by_port_uuid) | **GET** /fabric/v4/connections/{connectionId}/stats | Get Stats by uuid **(DEPRECATED)**
*StatisticsApi* | [**get_port_stats_by_port_uuid**](equinix/services/fabricv4/docs/StatisticsApi.md#get_port_stats_by_port_uuid) | **GET** /fabric/v4/ports/{portId}/stats | Get Stats by uuid **(DEPRECATED)**
*StreamAlertRulesApi* | [**create_stream_alert_rules**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#create_stream_alert_rules) | **POST** /fabric/v4/streams/{streamId}/alertRules | Create Stream Alert Rules
-*StreamAlertRulesApi* | [**delete_stream_alert_rule_by_uuid**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#delete_stream_alert_rule_by_uuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules
+*StreamAlertRulesApi* | [**delete_stream_alert_rule_by_uuid**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#delete_stream_alert_rule_by_uuid) | **DELETE** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Delete Stream Alert Rules
*StreamAlertRulesApi* | [**get_stream_alert_rule_by_uuid**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#get_stream_alert_rule_by_uuid) | **GET** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Get Stream Alert Rules
*StreamAlertRulesApi* | [**get_stream_alert_rules**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#get_stream_alert_rules) | **GET** /fabric/v4/streams/{streamId}/alertRules | Get Stream Alert Rules
*StreamAlertRulesApi* | [**update_stream_alert_rule_by_uuid**](equinix/services/fabricv4/docs/StreamAlertRulesApi.md#update_stream_alert_rule_by_uuid) | **PUT** /fabric/v4/streams/{streamId}/alertRules/{alertRuleId} | Update Stream Alert Rules
@@ -256,6 +271,19 @@ Class | Method | HTTP request | Description
- [AccessPointType](equinix/services/fabricv4/docs/AccessPointType.md)
- [Actions](equinix/services/fabricv4/docs/Actions.md)
- [AddOperation](equinix/services/fabricv4/docs/AddOperation.md)
+ - [Agent](equinix/services/fabricv4/docs/Agent.md)
+ - [AgentActivities](equinix/services/fabricv4/docs/AgentActivities.md)
+ - [AgentActivitiesMetadata](equinix/services/fabricv4/docs/AgentActivitiesMetadata.md)
+ - [AgentDefinition](equinix/services/fabricv4/docs/AgentDefinition.md)
+ - [AgentGetActivities](equinix/services/fabricv4/docs/AgentGetActivities.md)
+ - [AgentGetAllResponse](equinix/services/fabricv4/docs/AgentGetAllResponse.md)
+ - [AgentPatchRequest](equinix/services/fabricv4/docs/AgentPatchRequest.md)
+ - [AgentPostRequest](equinix/services/fabricv4/docs/AgentPostRequest.md)
+ - [AgentTemplate](equinix/services/fabricv4/docs/AgentTemplate.md)
+ - [AgentTemplateGetAllResponse](equinix/services/fabricv4/docs/AgentTemplateGetAllResponse.md)
+ - [AgentTemplates](equinix/services/fabricv4/docs/AgentTemplates.md)
+ - [AgentTemplatesState](equinix/services/fabricv4/docs/AgentTemplatesState.md)
+ - [Agents](equinix/services/fabricv4/docs/Agents.md)
- [AlertRulePostRequest](equinix/services/fabricv4/docs/AlertRulePostRequest.md)
- [AlertRulePostRequestType](equinix/services/fabricv4/docs/AlertRulePostRequestType.md)
- [AlertRulePutRequest](equinix/services/fabricv4/docs/AlertRulePutRequest.md)
@@ -287,9 +315,9 @@ Class | Method | HTTP request | Description
- [BulkPhysicalPort](equinix/services/fabricv4/docs/BulkPhysicalPort.md)
- [BulkPortRequest](equinix/services/fabricv4/docs/BulkPortRequest.md)
- [Change](equinix/services/fabricv4/docs/Change.md)
- - [ChangeStatus](equinix/services/fabricv4/docs/ChangeStatus.md)
- [ChangeType](equinix/services/fabricv4/docs/ChangeType.md)
- [Changelog](equinix/services/fabricv4/docs/Changelog.md)
+ - [ChatMessage](equinix/services/fabricv4/docs/ChatMessage.md)
- [CloudEvent](equinix/services/fabricv4/docs/CloudEvent.md)
- [CloudEventAssetType](equinix/services/fabricv4/docs/CloudEventAssetType.md)
- [CloudEventData](equinix/services/fabricv4/docs/CloudEventData.md)
@@ -344,6 +372,22 @@ Class | Method | HTTP request | Description
- [CloudRouterPostRequestPackage](equinix/services/fabricv4/docs/CloudRouterPostRequestPackage.md)
- [CloudRouterPostRequestPackageCode](equinix/services/fabricv4/docs/CloudRouterPostRequestPackageCode.md)
- [CloudRouterPostRequestPackageType](equinix/services/fabricv4/docs/CloudRouterPostRequestPackageType.md)
+ - [CloudRouterRouteAggregationAndExpression](equinix/services/fabricv4/docs/CloudRouterRouteAggregationAndExpression.md)
+ - [CloudRouterRouteAggregationExpression](equinix/services/fabricv4/docs/CloudRouterRouteAggregationExpression.md)
+ - [CloudRouterRouteAggregationOrExpression](equinix/services/fabricv4/docs/CloudRouterRouteAggregationOrExpression.md)
+ - [CloudRouterRouteAggregationSimpleExpression](equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpression.md)
+ - [CloudRouterRouteAggregationSimpleExpressionProperty](equinix/services/fabricv4/docs/CloudRouterRouteAggregationSimpleExpressionProperty.md)
+ - [CloudRouterRouteAggregationsFilter](equinix/services/fabricv4/docs/CloudRouterRouteAggregationsFilter.md)
+ - [CloudRouterRouteAggregationsSearchBase](equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchBase.md)
+ - [CloudRouterRouteAggregationsSearchResponse](equinix/services/fabricv4/docs/CloudRouterRouteAggregationsSearchResponse.md)
+ - [CloudRouterRouteFilterAndExpression](equinix/services/fabricv4/docs/CloudRouterRouteFilterAndExpression.md)
+ - [CloudRouterRouteFilterExpression](equinix/services/fabricv4/docs/CloudRouterRouteFilterExpression.md)
+ - [CloudRouterRouteFilterOrExpression](equinix/services/fabricv4/docs/CloudRouterRouteFilterOrExpression.md)
+ - [CloudRouterRouteFilterSimpleExpression](equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpression.md)
+ - [CloudRouterRouteFilterSimpleExpressionProperty](equinix/services/fabricv4/docs/CloudRouterRouteFilterSimpleExpressionProperty.md)
+ - [CloudRouterRouteFiltersFilter](equinix/services/fabricv4/docs/CloudRouterRouteFiltersFilter.md)
+ - [CloudRouterRouteFiltersSearchBase](equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchBase.md)
+ - [CloudRouterRouteFiltersSearchResponse](equinix/services/fabricv4/docs/CloudRouterRouteFiltersSearchResponse.md)
- [CloudRouterSearchRequest](equinix/services/fabricv4/docs/CloudRouterSearchRequest.md)
- [CloudRouterSimpleExpression](equinix/services/fabricv4/docs/CloudRouterSimpleExpression.md)
- [CloudRouterSortBy](equinix/services/fabricv4/docs/CloudRouterSortBy.md)
@@ -356,11 +400,13 @@ Class | Method | HTTP request | Description
- [CompanyProfileChange](equinix/services/fabricv4/docs/CompanyProfileChange.md)
- [CompanyProfileRequest](equinix/services/fabricv4/docs/CompanyProfileRequest.md)
- [CompanyProfileResponse](equinix/services/fabricv4/docs/CompanyProfileResponse.md)
+ - [CompanyProfileResponseAccount](equinix/services/fabricv4/docs/CompanyProfileResponseAccount.md)
- [CompanyProfileSearchFilter](equinix/services/fabricv4/docs/CompanyProfileSearchFilter.md)
- [CompanyProfileSearchRequest](equinix/services/fabricv4/docs/CompanyProfileSearchRequest.md)
- [CompanyProfileSearchResponse](equinix/services/fabricv4/docs/CompanyProfileSearchResponse.md)
- [CompanyProfileSortDirection](equinix/services/fabricv4/docs/CompanyProfileSortDirection.md)
- [CompanyServiceProfile](equinix/services/fabricv4/docs/CompanyServiceProfile.md)
+ - [Configuration](equinix/services/fabricv4/docs/Configuration.md)
- [ConnectedMetro](equinix/services/fabricv4/docs/ConnectedMetro.md)
- [Connection](equinix/services/fabricv4/docs/Connection.md)
- [ConnectionAcceptanceData](equinix/services/fabricv4/docs/ConnectionAcceptanceData.md)
@@ -473,6 +519,7 @@ Class | Method | HTTP request | Description
- [MarketplaceSubscriptionType](equinix/services/fabricv4/docs/MarketplaceSubscriptionType.md)
- [Md5](equinix/services/fabricv4/docs/Md5.md)
- [Md5Type](equinix/services/fabricv4/docs/Md5Type.md)
+ - [MessagesInner](equinix/services/fabricv4/docs/MessagesInner.md)
- [MetalInterconnection](equinix/services/fabricv4/docs/MetalInterconnection.md)
- [Metric](equinix/services/fabricv4/docs/Metric.md)
- [MetricAssetType](equinix/services/fabricv4/docs/MetricAssetType.md)
@@ -625,6 +672,8 @@ Class | Method | HTTP request | Description
- [PtpAdvanceConfigurationLogSyncInterval](equinix/services/fabricv4/docs/PtpAdvanceConfigurationLogSyncInterval.md)
- [PtpAdvanceConfigurationTimeScale](equinix/services/fabricv4/docs/PtpAdvanceConfigurationTimeScale.md)
- [PtpAdvanceConfigurationTransportMode](equinix/services/fabricv4/docs/PtpAdvanceConfigurationTransportMode.md)
+ - [RaAttachmentSortItem](equinix/services/fabricv4/docs/RaAttachmentSortItem.md)
+ - [RaAttachmentSortItemProperty](equinix/services/fabricv4/docs/RaAttachmentSortItemProperty.md)
- [RemoveOperation](equinix/services/fabricv4/docs/RemoveOperation.md)
- [ReplaceOperation](equinix/services/fabricv4/docs/ReplaceOperation.md)
- [ResourceData](equinix/services/fabricv4/docs/ResourceData.md)
@@ -634,9 +683,18 @@ Class | Method | HTTP request | Description
- [ResponseIncompleteDetailsReason](equinix/services/fabricv4/docs/ResponseIncompleteDetailsReason.md)
- [ResponseUsageInputTokensDetails](equinix/services/fabricv4/docs/ResponseUsageInputTokensDetails.md)
- [ResponseUsageOutputTokensDetails](equinix/services/fabricv4/docs/ResponseUsageOutputTokensDetails.md)
+ - [RfAttachmentSortItem](equinix/services/fabricv4/docs/RfAttachmentSortItem.md)
+ - [RfAttachmentSortItemProperty](equinix/services/fabricv4/docs/RfAttachmentSortItemProperty.md)
- [RouteAggregationChangeData](equinix/services/fabricv4/docs/RouteAggregationChangeData.md)
- [RouteAggregationChangeDataResponse](equinix/services/fabricv4/docs/RouteAggregationChangeDataResponse.md)
- [RouteAggregationConnectionsData](equinix/services/fabricv4/docs/RouteAggregationConnectionsData.md)
+ - [RouteAggregationRuleAndExpression](equinix/services/fabricv4/docs/RouteAggregationRuleAndExpression.md)
+ - [RouteAggregationRuleExpression](equinix/services/fabricv4/docs/RouteAggregationRuleExpression.md)
+ - [RouteAggregationRuleOrExpression](equinix/services/fabricv4/docs/RouteAggregationRuleOrExpression.md)
+ - [RouteAggregationRuleSimpleExpression](equinix/services/fabricv4/docs/RouteAggregationRuleSimpleExpression.md)
+ - [RouteAggregationRuleSortBy](equinix/services/fabricv4/docs/RouteAggregationRuleSortBy.md)
+ - [RouteAggregationRuleSortCriteria](equinix/services/fabricv4/docs/RouteAggregationRuleSortCriteria.md)
+ - [RouteAggregationRuleSortDirection](equinix/services/fabricv4/docs/RouteAggregationRuleSortDirection.md)
- [RouteAggregationRuleState](equinix/services/fabricv4/docs/RouteAggregationRuleState.md)
- [RouteAggregationRulesBase](equinix/services/fabricv4/docs/RouteAggregationRulesBase.md)
- [RouteAggregationRulesChange](equinix/services/fabricv4/docs/RouteAggregationRulesChange.md)
@@ -646,8 +704,11 @@ Class | Method | HTTP request | Description
- [RouteAggregationRulesChangeType](equinix/services/fabricv4/docs/RouteAggregationRulesChangeType.md)
- [RouteAggregationRulesData](equinix/services/fabricv4/docs/RouteAggregationRulesData.md)
- [RouteAggregationRulesDataType](equinix/services/fabricv4/docs/RouteAggregationRulesDataType.md)
+ - [RouteAggregationRulesFilter](equinix/services/fabricv4/docs/RouteAggregationRulesFilter.md)
- [RouteAggregationRulesPatchRequestItem](equinix/services/fabricv4/docs/RouteAggregationRulesPatchRequestItem.md)
- [RouteAggregationRulesPostRequest](equinix/services/fabricv4/docs/RouteAggregationRulesPostRequest.md)
+ - [RouteAggregationRulesSearchRequest](equinix/services/fabricv4/docs/RouteAggregationRulesSearchRequest.md)
+ - [RouteAggregationRulesSearchResponse](equinix/services/fabricv4/docs/RouteAggregationRulesSearchResponse.md)
- [RouteAggregationSortItem](equinix/services/fabricv4/docs/RouteAggregationSortItem.md)
- [RouteAggregationSortItemProperty](equinix/services/fabricv4/docs/RouteAggregationSortItemProperty.md)
- [RouteAggregationState](equinix/services/fabricv4/docs/RouteAggregationState.md)
@@ -666,6 +727,13 @@ Class | Method | HTTP request | Description
- [RouteFilterChangeData](equinix/services/fabricv4/docs/RouteFilterChangeData.md)
- [RouteFilterChangeDataResponse](equinix/services/fabricv4/docs/RouteFilterChangeDataResponse.md)
- [RouteFilterConnectionsData](equinix/services/fabricv4/docs/RouteFilterConnectionsData.md)
+ - [RouteFilterRuleAndExpression](equinix/services/fabricv4/docs/RouteFilterRuleAndExpression.md)
+ - [RouteFilterRuleExpression](equinix/services/fabricv4/docs/RouteFilterRuleExpression.md)
+ - [RouteFilterRuleOrExpression](equinix/services/fabricv4/docs/RouteFilterRuleOrExpression.md)
+ - [RouteFilterRuleSimpleExpression](equinix/services/fabricv4/docs/RouteFilterRuleSimpleExpression.md)
+ - [RouteFilterRuleSortBy](equinix/services/fabricv4/docs/RouteFilterRuleSortBy.md)
+ - [RouteFilterRuleSortCriteria](equinix/services/fabricv4/docs/RouteFilterRuleSortCriteria.md)
+ - [RouteFilterRuleSortDirection](equinix/services/fabricv4/docs/RouteFilterRuleSortDirection.md)
- [RouteFilterRuleState](equinix/services/fabricv4/docs/RouteFilterRuleState.md)
- [RouteFilterRulesBase](equinix/services/fabricv4/docs/RouteFilterRulesBase.md)
- [RouteFilterRulesChange](equinix/services/fabricv4/docs/RouteFilterRulesChange.md)
@@ -676,8 +744,11 @@ Class | Method | HTTP request | Description
- [RouteFilterRulesData](equinix/services/fabricv4/docs/RouteFilterRulesData.md)
- [RouteFilterRulesDataAction](equinix/services/fabricv4/docs/RouteFilterRulesDataAction.md)
- [RouteFilterRulesDataType](equinix/services/fabricv4/docs/RouteFilterRulesDataType.md)
+ - [RouteFilterRulesFilter](equinix/services/fabricv4/docs/RouteFilterRulesFilter.md)
- [RouteFilterRulesPatchRequestItem](equinix/services/fabricv4/docs/RouteFilterRulesPatchRequestItem.md)
- [RouteFilterRulesPostRequest](equinix/services/fabricv4/docs/RouteFilterRulesPostRequest.md)
+ - [RouteFilterRulesSearchRequest](equinix/services/fabricv4/docs/RouteFilterRulesSearchRequest.md)
+ - [RouteFilterRulesSearchResponse](equinix/services/fabricv4/docs/RouteFilterRulesSearchResponse.md)
- [RouteFilterState](equinix/services/fabricv4/docs/RouteFilterState.md)
- [RouteFiltersBase](equinix/services/fabricv4/docs/RouteFiltersBase.md)
- [RouteFiltersBaseType](equinix/services/fabricv4/docs/RouteFiltersBaseType.md)
@@ -743,7 +814,11 @@ Class | Method | HTTP request | Description
- [ServiceProfileAccessPointTypeVD](equinix/services/fabricv4/docs/ServiceProfileAccessPointTypeVD.md)
- [ServiceProfileAccessPointVD](equinix/services/fabricv4/docs/ServiceProfileAccessPointVD.md)
- [ServiceProfileAccessPointVDType](equinix/services/fabricv4/docs/ServiceProfileAccessPointVDType.md)
+ - [ServiceProfileActionRequest](equinix/services/fabricv4/docs/ServiceProfileActionRequest.md)
+ - [ServiceProfileActionResponse](equinix/services/fabricv4/docs/ServiceProfileActionResponse.md)
- [ServiceProfileAndFilter](equinix/services/fabricv4/docs/ServiceProfileAndFilter.md)
+ - [ServiceProfileChange](equinix/services/fabricv4/docs/ServiceProfileChange.md)
+ - [ServiceProfileChangeStatus](equinix/services/fabricv4/docs/ServiceProfileChangeStatus.md)
- [ServiceProfileFilter](equinix/services/fabricv4/docs/ServiceProfileFilter.md)
- [ServiceProfileLinkProtocolConfig](equinix/services/fabricv4/docs/ServiceProfileLinkProtocolConfig.md)
- [ServiceProfileLinkProtocolConfigEncapsulation](equinix/services/fabricv4/docs/ServiceProfileLinkProtocolConfigEncapsulation.md)
@@ -870,6 +945,7 @@ Class | Method | HTTP request | Description
- [TimeServiceSortCriteria](equinix/services/fabricv4/docs/TimeServiceSortCriteria.md)
- [TimeServiceSortDirection](equinix/services/fabricv4/docs/TimeServiceSortDirection.md)
- [TimeServicesSearchRequest](equinix/services/fabricv4/docs/TimeServicesSearchRequest.md)
+ - [ToolCallInformationInner](equinix/services/fabricv4/docs/ToolCallInformationInner.md)
- [ValidateConnectionResponse](equinix/services/fabricv4/docs/ValidateConnectionResponse.md)
- [ValidateRequest](equinix/services/fabricv4/docs/ValidateRequest.md)
- [ValidateRequestFilter](equinix/services/fabricv4/docs/ValidateRequestFilter.md)
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 1a5e3c71..9fdec0e4 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:
@@ -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,101 @@ 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:
+ 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 +21193,7 @@ components:
- IPWAN_VC
- IA_VC
- MC_VC
- - IX_PUBLIC_VC
- - IX_PRIVATE_VC
+ - IX_VC
Order:
type: object
properties:
@@ -19406,6 +21218,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 +21238,8 @@ components:
- PROFILE_LIFECYCLE
- ALL
- SALES_REP_NOTIFICATIONS
+ - TECHNICAL
+ - ORDERING
sendInterval:
type: string
emails:
@@ -19452,25 +21269,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:
- type: object
- properties:
- projectId:
- type: string
- description: Subscriber-assigned project ID
- example: 44f4c4f8-2f39-494e-838c-d8e640591be5
ConnectionSideAdditionalInfo:
type: object
properties:
@@ -19525,9 +21329,7 @@ components:
- DRAFT
- FAILED
- PENDING
- - PROVISIONED
- PROVISIONING
- - REPROVISIONING
- ""
Change:
required:
@@ -19638,61 +21440,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
@@ -20039,6 +21786,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:
@@ -20178,25 +21944,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.
@@ -20720,6 +22467,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
@@ -22076,6 +23833,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
@@ -22120,8 +23903,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
@@ -22182,12 +23963,7 @@ components:
- PROVISIONING
- REJECTED
- PENDING_BGP
- - OUT_OF_BANDWIDTH
- - DELETED
- ERROR
- - ERRORED
- - NOTPROVISIONED
- - NOT_PROVISIONED
- ORDERING
- DELETING
- PENDING DELETE
@@ -22200,14 +23976,6 @@ components:
- REJECTED
- PENDING_DELETE
- PROVISIONED
- - BEING_REPROVISIONED
- - BEING_DEPROVISIONED
- - BEING_PROVISIONED
- - CREATED
- - ERRORED
- - PENDING_DEPROVISIONING
- - APPROVED
- - ORDERING
- PENDING_APPROVAL
- NOT_PROVISIONED
- DEPROVISIONING
@@ -22218,16 +23986,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
@@ -22277,6 +24040,7 @@ components:
- VIRTUAL_PORT_PRODUCT
- CLOUD_ROUTER_PRODUCT
- PRECISION_TIME_PRODUCT
+ - METRO_CONNECT_PRODUCT
PriceCharge:
type: object
properties:
@@ -22676,6 +24440,7 @@ components:
- NETWORK
- METAL_NETWORK
- VPIC_INTERFACE
+ - APP_LINK
SimplifiedPort:
type: object
properties:
@@ -23389,6 +25154,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:
@@ -23419,6 +25189,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:
@@ -23479,6 +25256,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:
@@ -23692,13 +25491,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
@@ -23718,10 +25517,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:
@@ -24349,7 +26395,7 @@ components:
COLO2AlibabaSPwithDot1q:
value:
type: EVPL_VC
- name: My-Layer2-Connection-3
+ name: port2alibaba-connection-1
bandwidth: 1000
redundancy:
priority: PRIMARY
@@ -24408,57 +26454,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:
@@ -24469,16 +26512,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:
@@ -24499,15 +26545,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
@@ -24543,47 +26592,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
@@ -26063,171 +28076,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
@@ -26290,43 +28138,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:
@@ -26771,6 +28596,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
@@ -26789,12 +28663,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:
@@ -26828,7 +28698,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
@@ -26840,12 +28710,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:
@@ -26892,12 +28758,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:
@@ -27232,8 +29094,6 @@ components:
- test1@equinix.com
changeLog:
createdBy: test
- createdByFullName: test
- createdByEmail: test@equinix.com
createdDateTime: 2022-05-12T17:53:45.401Z
Fcr2Colo-ResponseExample:
value:
@@ -27272,8 +29132,6 @@ components:
- test1@equinix.com
changeLog:
createdBy: test
- createdByFullName: test
- createdByEmail: test@equinix.com
createdDateTime: 2022-05-12T17:53:45.401Z
Fcr2IpWan-response:
value:
@@ -27316,8 +29174,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:
@@ -27357,8 +29213,6 @@ components:
- test1@equinix.com
changeLog:
createdBy: test
- createdByFullName: test
- createdByEmail: test@equinix.com
createdDateTime: 2022-05-12T17:53:45.401Z
AsideServiceToken2PortResponseWithDot1q:
value:
@@ -27498,6 +29352,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
@@ -27531,8 +29388,6 @@ components:
- fabric1@gmail.com
changeLog:
createdBy: fabric
- createdByEmail: fabric@gmail.com
- createdByFullName: fabric
createdDateTime: 2020-05-21T10:30:00Z
Metal2Sp-Azure-Response:
value:
@@ -27551,12 +29406,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:
@@ -27596,12 +29447,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:
@@ -27641,12 +29488,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:
@@ -27687,12 +29530,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:
@@ -27733,12 +29572,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:
@@ -27780,12 +29615,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:
@@ -27828,12 +29659,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:
@@ -27880,12 +29707,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:
@@ -27907,275 +29730,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
@@ -28194,12 +29748,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:
@@ -28208,7 +29758,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
@@ -28248,12 +29798,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:
@@ -28262,7 +29808,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
@@ -28301,12 +29847,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:
@@ -28315,7 +29857,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
@@ -28354,12 +29896,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:
@@ -28368,7 +29906,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
@@ -28406,12 +29944,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:
@@ -28420,7 +29954,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
@@ -28461,12 +29995,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:
@@ -28475,7 +30005,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
@@ -28515,12 +30045,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:
@@ -28529,7 +30055,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
@@ -28569,12 +30095,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:
@@ -28583,7 +30105,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
@@ -28621,12 +30143,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:
@@ -28670,12 +30188,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:
@@ -28721,12 +30235,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:
@@ -28772,12 +30282,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:
@@ -28822,12 +30328,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:
@@ -28872,12 +30374,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:
@@ -28923,12 +30421,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:
@@ -28956,45 +30450,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
@@ -29004,20 +30465,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:
@@ -29892,12 +31353,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
@@ -29949,12 +31406,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:
@@ -30011,12 +31464,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
@@ -30432,12 +31881,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:
@@ -30703,13 +32148,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:
@@ -30732,13 +32173,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:
@@ -30800,13 +32237,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:
@@ -30831,13 +32264,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:
@@ -30983,13 +32412,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:
@@ -31014,13 +32439,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:
@@ -31035,17 +32456,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:
@@ -31060,13 +32475,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:
@@ -31112,13 +32523,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:
@@ -31139,13 +32546,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:
@@ -31170,12 +32573,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
@@ -31184,12 +32583,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:
@@ -31218,8 +32613,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPHardResetIPv6Response:
value:
@@ -31230,8 +32623,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPSoftClearInAndOutBoundIPv4Response:
value:
@@ -31242,8 +32633,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPSoftClearInAndOutBoundIPv6Response:
value:
@@ -31254,8 +32643,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPSoftClearInBoundIPv4Response:
value:
@@ -31266,8 +32653,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPSoftClearInBoundIPv6Response:
value:
@@ -31278,8 +32663,6 @@ components:
state: PENDING
changeLog:
createdBy: adminuser
- createdByEmail: adminuser@equinix.com
- createdByFullName: adminuser adminuser
createdDateTime: 2020-05-21T10:30:00Z
BGPActionDataResponseExample:
value:
@@ -31290,12 +32673,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:
@@ -31414,238 +32793,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:
@@ -32933,6 +34437,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:
@@ -33131,6 +34671,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
@@ -34066,6 +35636,11 @@ components:
path: /tags
value:
- sample_tag
+ ServiceProfilePatchRequestForVisibility:
+ value:
+ - op: replace
+ path: /visibility
+ value: PUBLIC
ServiceProfilePatchResponse:
value:
state: ACTIVE
@@ -34141,10 +35716,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
@@ -34950,35 +36625,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:
@@ -34987,29 +36649,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:
@@ -35018,60 +36706,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:
@@ -35080,6 +36747,8 @@ components:
- type: ALL
emails:
- test@test.com
+ registeredUsers:
+ - test@test.com
changeLog:
createdByEmail: abc@xyz.com
createdDateTime: 2025-07-24T06:50:46Z
@@ -35089,49 +36758,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:
@@ -35140,6 +36789,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
@@ -35148,231 +36842,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:
@@ -35383,57 +37091,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:
@@ -35444,57 +37132,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:
@@ -35505,54 +37172,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:
@@ -35563,69 +37209,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:
@@ -35634,66 +37333,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:
@@ -35702,11 +37375,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
@@ -35735,56 +37405,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:
@@ -35793,6 +37440,8 @@ components:
- type: ALL
emails:
- test@test.com
+ registeredUsers:
+ - test@test.com
changeLog:
createdByEmail: abc@xyz.com
createdDateTime: 2025-07-24T06:50:46Z
@@ -35802,53 +37451,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:
@@ -35857,6 +37520,8 @@ components:
- type: ALL
emails:
- test@test.com
+ registeredUsers:
+ - test@test.com
changeLog:
createdByEmail: abc@xyz.com
createdDateTime: 2025-07-24T06:50:46Z
@@ -35887,11 +37552,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:
@@ -35930,56 +37595,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:
@@ -35988,6 +37629,8 @@ components:
- type: ALL
emails:
- test@test.com
+ registeredUsers:
+ - test@test.com
changeLog:
createdByEmail: abc@xyz.com
createdDateTime: 2025-07-24T06:50:46Z
@@ -35995,56 +37638,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:
@@ -36053,6 +37672,8 @@ components:
- type: ALL
emails:
- test@test.com
+ registeredUsers:
+ - test@test.com
changeLog:
createdByEmail: abc@xyz.com
createdDateTime: 2024-07-24T06:50:46Z
@@ -37046,6 +38667,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
@@ -37100,9 +38807,6 @@ components:
- type: NOTIFICATION
registeredUsers:
- jaguars-test-user-001
- additionalInfo:
- - key: quoteReferenceId
- value: 45954c0c-29ee-43ac-9013-adc2aab9f509
physicalPorts:
- demarcationPoint:
ibx: GV1
@@ -37155,8 +38859,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
@@ -37205,8 +38907,6 @@ components:
additionalInfo:
- key: lagType
value: New
- - key: quoteReferenceId
- value: ee38d4b9-8264-4824-b829-659b72d50b4f
remoteSinglePortLagWithPurchaseOrderExemption:
value:
type: XF_PORT
@@ -37287,9 +38987,6 @@ components:
- type: NOTIFICATION
registeredUsers:
- jaguars-test-user-001
- additionalInfo:
- - key: quoteReferenceId
- value: 45954c0c-29ee-43ac-9013-adc2aab9f509
physicalPorts:
- demarcationPoint:
ibx: GV1
@@ -37337,9 +39034,6 @@ components:
- type: NOTIFICATION
registeredUsers:
- jaguars-test-user-001
- additionalInfo:
- - key: quoteReferenceId
- value: 45954c0c-29ee-43ac-9013-adc2aab9f509
physicalPorts:
- demarcationPoint:
ibx: GV1
@@ -37397,15 +39091,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
@@ -37605,8 +39290,6 @@ components:
loas:
- uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98
additionalInfo:
- - key: quoteReferenceId
- value: fed85cbf-a32f-433f-a109-60e767d599f6
- key: InterfaceReferenceId
value: "906234"
bmmrType: EQUINIX
@@ -37643,8 +39326,6 @@ components:
loas:
- uuid: 96cb973f-0eea-4cf1-a93d-23a27f070a98
additionalInfo:
- - key: quoteReferenceId
- value: fed85cbf-a32f-433f-a109-60e767d599f6
- key: InterfaceReferenceId
value: "906234"
bmmrType: EQUINIX
@@ -37692,8 +39373,6 @@ components:
project:
projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1
additionalInfo:
- - key: quoteReferenceId
- value: 82da30e9-6cef-45c3-b772-f657fadb88d2
- key: InterfaceReferenceId
value: "261376"
order:
@@ -37738,8 +39417,6 @@ components:
project:
projectId: 333cd592-1709-4238-bb0d-2c2b41896aa1
additionalInfo:
- - key: quoteReferenceId
- value: 82da30e9-6cef-45c3-b772-f657fadb88d2
- key: InterfaceReferenceId
value: "261376"
order:
@@ -37860,8 +39537,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
@@ -37906,8 +39581,6 @@ components:
registeredUsers:
- falconsExternalUser@seller.com
additionalInfo:
- - key: quoteReferenceId
- value: fed85cbf-a32f-433f-a109-60e767d599f6
- key: InterfaceReferenceId
value: "906234"
remoteBulkPortResponse:
@@ -37956,8 +39629,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
@@ -38003,8 +39674,6 @@ components:
registeredUsers:
- falconsExternalUser@seller.com
additionalInfo:
- - key: quoteReferenceId
- value: 82da30e9-6cef-45c3-b772-f657fadb88d2
- key: InterfaceReferenceId
value: "261376"
coloAddToLag:
@@ -38939,8 +40608,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
@@ -38989,8 +40656,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
@@ -39261,8 +40926,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
@@ -39672,6 +41337,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
@@ -39861,8 +41622,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
@@ -40117,6 +41878,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
@@ -40440,13 +42284,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
@@ -40460,6 +42338,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
@@ -40492,47 +42377,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
@@ -41099,6 +42943,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:
@@ -41980,8 +43912,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
@@ -42018,8 +43948,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
@@ -42054,8 +43982,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
@@ -42090,8 +44016,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
@@ -42128,8 +44052,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
@@ -42164,8 +44086,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
@@ -42200,8 +44120,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
@@ -42238,8 +44156,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
@@ -42274,8 +44190,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
@@ -42310,8 +44224,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
@@ -42348,8 +44260,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
@@ -42384,8 +44294,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
@@ -42425,12 +44333,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
@@ -42453,12 +44357,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
@@ -42490,16 +44390,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
@@ -42540,12 +44434,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
@@ -42580,12 +44470,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