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