# Managing Fabric Cloud Routers ## Prerequisites Authenticate - Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication. Refer to [API Authentication](https://docs.equinix.com/equinix-api/api-authentication.md) for instructions on how to call the OAuth API to validate and authenticate your credentials. ## Search and Retrieve Fabric Cloud Routers This API request retrieves Fabric Cloud Router instances that match provided search criteria. Send a `POST` request to the [`/fabric/v4/routers/search`](https://docs.equinix.com/api-catalog/fabricv4.md#operation/searchCloudRouters) endpoint, specifying your criteria in the body of the request. | | **POST /fabric/v4/routers/search** | | ---------------- | ---------------------------------- | | Method | `POST` | | URL or Endpoint | `/fabric/v4/routers/search` | | Headers | `Authorization`, `Content-Type` | | Path Parameters | Not applicable | | Query Parameters | Not applicable | | Body Parameters | `filter`, `pagination`, `sort` | Sample curl request: ``` curl -X POST 'http: //api.equinix.com/fabric/v4/routers/search' -H 'content-type: application/json' -H 'authorization: Bearer ' -d '{     "filter": {         "and": [             {                 "property": "/name",                 "operator": "LIKE",                 "values": [                     "%Test%"                 ]             },             {                 "property": "/state",                 "operator": "=",                 "values": [                     "PROVISIONED"                 ]             },             {                 "property": "/project/projectId",                 "operator": "=",                 "values": [                     "995072000433550"                 ]             },             {                 "property": "/location/metroCode",                 "operator": "=",                 "values": [                     "SV"                 ]             }         ]     },     "pagination": {         "offset": 0,         "limit": 20     },     "sort": [         {             "direction": "DESC",             "property": "/changeLog/createdDateTime"         }     ] }' ``` Notable Body Parameters: * `filter` (required) *object* - The object that defines your search conditions. * `and` (required) *array\[object]* - An array object that serves as the logical operator applied on the search objects in the array. You can search on: * `property` (required) *string* - Search field parameter. Note that the property value determines the list of applicable operators and values. Applicable values: `"/name"`, `"/uuid"`, `"/state"`, `"/location/metroCode"`, `"/location/metroName"`, `"/package/code"` and an all-category search `"\*"`. * `operator` (required) *string* - Search field parameter operator. Applicable values: `"="`, `"!="`, `">"`, `">="`, `"<"`, `"<="`, `BETWEEN`, `LIKE`, `IN`, `"NOT BETWEEN"`, `"NOT LIKE"`, `"NOT IN"`. * `value` (required) *array\[string]* - Search field parameter value. * `pagination` *object* - Optional object containing search results pagination settings with `offset` *integer* and `limit` *integer* fields. * `sort` *object* - Optional object that defines your search result sorting settings with `direction` *string* and `property` *string* fields. For a complete list of searchable properties, pagination limits, and sortable properties, see the [API reference](https://docs.equinix.com/api-catalog/fabricv4.md#operation/searchCloudRouters). Sample response: ``` {     "pagination": {         "offset": 0,         "limit": 20,         "total": 1,         "next": "/search?offset=4&limit=2",         "previous": "/search?offset=0&limit=2"     },     "data": [         {             "href": "https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d",             "uuid": "201b7346-a9eb-42fe-ae7a-08148c71928d",             "state": "PROVISIONED",             "type": "XF_ROUTER",             "name": "My-Fabric-Cloud-Router",             "location": {                 "metroCode": "HH"             },             "package": {                 "code": "LAB"             },             "order": {                 "purchaseOrderNumber": "1-129105284100"             },             "project": {                 "projectId": "12345"             },             "notifications": [                 {                     "type": "ALL",                     "emails": [                         "abc@abc.com"                     ]                 }             ],             "account": {                 "accountNumber": 123             },             "bgpIpv4RoutesCount": 0,             "bgpIpv6RoutesCount": 0,             "connectionsCount": 0,             "changeLog": {                 "createdBy": "abc@xyz.com",                 "createdByFullName": "abc",                 "createdByEmail": "abc@xyz.com",                 "createdDateTime": "2021-09-24T06:59:46Z"             }         }     ] } ``` ## Get Specified Fabric Cloud Router This API request retrieves details of a specified Fabric Cloud Router, send a `GET` request to the [`/fabric/v4/routers/{uuid}`](https://docs.equinix.com/api-catalog/fabricv4.md#operation/getCloudRouterByUuid) endpoint with the `uuid` in the path of the request. | | **GET /fabric/v4/routers/{uuid}** | | ---------------- | --------------------------------- | | Method | `GET` | | URL or Endpoint | `/fabric/v4/routers/{uuid}` | | Headers | `Authorization`, `Content-Type` | | Path Parameters | `uuid` | | Query Parameters | Not applicable | | Body Parameters | Not applicable | Sample curl request: ``` curl -X GET 'https://api.equinix.com/fabric/v4/routers/{router_uuid}' -H 'content-type: application/json' -H 'authorization: Bearer ' ``` Sample response: ``` {     "href": "https://api.equinix.com/fabric/v4/routers/201b7346-a9eb-42fe-ae7a-08148c71928d",     "uuid": "201b7346-a9eb-42fe-ae7a-08148c71928d",     "state": "PROVISIONED",     "type": "XF_ROUTER",     "name": "My-Fabric-Cloud-Router",     "location": {         "metroCode": "HH"     },     "package": {         "code": "LAB"     },     "order": {         "purchaseOrderNumber": "1-129105284100"     },     "project": {         "projectId": "12345"     },     "notifications": [         {             "type": "ALL",             "emails": [                 "abc@abc.com"             ]         }     ],     "account": {         "accountNumber": 123     },     "bgpIpv4RoutesCount": 0,     "bgpIpv6RoutesCount": 0,     "distinctIpv4PrefixesCount": 4,     "distinctIpv6PrefixesCount": 4,     "connectionsCount": 0,     "changeLog": {         "createdBy": "abc@xyz.com",         "createdByFullName": "abc",         "createdByEmail": "abc@xyz.com",         "createdDateTime": "2021-09-24T06:59:46Z"     } } ``` ## Update a Fabric Cloud Router To update a Fabric Cloud Router, send a `PATCH` request to the [`/fabric/v4/routers/{routerId}`](https://docs.equinix.com/api-catalog/fabricv4.md#operation/updateCloudRouterByUuid) endpoint with the parameters you are updating in the body of the request. You can update the name or change the package. | | **PATCH /fabric/v4/routers/{uuid}** | | ---------------- | ----------------------------------- | | Method | PATCH | | URL or Endpoint | `/fabric/v4/routers/{uuid}` | | Headers | `Authorization`, `Content-Type` | | Path Parameters | `uuid` | | Query Parameters | Not applicable | | Body Parameters | `op`, `path`, `value` | Sample curl request: ``` curl -X PATCH 'https: //api.equinix.com/fabric/v4/routers/{router_uuid}' -H 'content-type: application/json' -H 'authorization: Bearer ' -d '[     {         "op": "replace",         "path": "/name",         "value": "Cloud-Router-2"     } ]' ``` Notable Body Parameters: * `op` (required) *string* - Update request type. Applicable values: `replace`, `add`, or `remove`. * `path` (required) *string* - Parameter path of the value you are updating. Applicable values: `"/name"` or `"/package/code"`. * `value` (required) *string* - The new parameter value. For a complete list of updatable fields and their values, see the [API reference](https://docs.equinix.com/api-catalog/fabricv4.md#operation/updateCloudRouterByUuid). ## Delete Fabric Cloud Router To delete a Fabric Cloud Router, send a `DELETE` request to the [`/fabric/v4/routers/{uuid}`](https://docs.equinix.com/api-catalog/fabricv4.md#operation/deleteCloudRouterByUuid) endpoint. Specify the the router you want to delete by `uuid` in the path. | | **DELETE /fabric/v4/routers/{uuid}** | | ---------------- | ------------------------------------ | | Method | DELETE | | URL or Endpoint | `/fabric/v4/routers/{uuid}` | | Headers | `Authorization`, `Content-Type` | | Path Parameters | `uuid` | | Query Parameters | Not applicable | | Body Parameters | Not applicable | Sample curl request: ``` curl -X DELETE 'https://api.equinix.com/fabric/v4/routers/{router_uuid}' -H 'content-type: application/json' -H 'authorization: Bearer ' ```