| .. | |
| .. | |
| .. Licensed under the Apache License, Version 2.0 (the "License"); | |
| .. you may not use this file except in compliance with the License. | |
| .. You may obtain a copy of the License at | |
| .. | |
| .. http://www.apache.org/licenses/LICENSE-2.0 | |
| .. | |
| .. Unless required by applicable law or agreed to in writing, software | |
| .. distributed under the License is distributed on an "AS IS" BASIS, | |
| .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| .. See the License for the specific language governing permissions and | |
| .. limitations under the License. | |
| .. | |
| .. _to-api-federations: | |
| *************** | |
| ``federations`` | |
| *************** | |
| ``GET`` | |
| ======= | |
| Retrieves a list of :term:`Federation` mappings (i.e. :term:`Federation` Resolvers) for the current user. | |
| :Auth. Required: Yes | |
| :Roles Required: "admin", "Federation", "operations", "Portal", or "Steering" | |
| :Permissions Required: FEDERATION-RESOLVER:READ, DELIVERY-SERVICE:READ | |
| :Response Type: Array | |
| Request Structure | |
| ----------------- | |
| No parameters available. | |
| Response Structure | |
| ------------------ | |
| :deliveryService: The ``xml_id`` that uniquely identifies the :term:`Delivery Service` that uses the federation mappings in ``mappings`` | |
| :mappings: An array of objects that represent the mapping of a :term:`Federation`'s :abbr:`CNAME (Canonical Name)` to one or more Resolvers | |
| :cname: The actual CNAME used by the :term:`Federation` | |
| :resolve4: An array of IPv4 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) capable of resolving the :term:`Federation`'s CNAME | |
| :resolve6: An array of IPv6 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) capable of resolving the :term:`Federation`'s CNAME | |
| :ttl: The :abbr:`TTL (Time To Live)` of the CNAME in hours | |
| .. code-block:: http | |
| :caption: Response Example | |
| HTTP/1.1 200 OK | |
| Access-Control-Allow-Credentials: true | |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie | |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE | |
| Access-Control-Allow-Origin: * | |
| Content-Type: application/json | |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly | |
| Whole-Content-Sha512: d6Llm5qNc2sfgVH9IimW7hA4wvtBUq6EzUmpJf805kB0k6v2WysNgFEWK4hBXNdAYkr8hYuKPrwDy3tCx0OZ8Q== | |
| X-Server-Name: traffic_ops_golang/ | |
| Date: Mon, 03 Dec 2018 17:19:13 GMT | |
| Content-Length: 136 | |
| { "response": [ | |
| { | |
| "mappings": [ | |
| { | |
| "ttl": 300, | |
| "cname": "blah.blah.", | |
| "resolve4": [ | |
| "0.0.0.0/32" | |
| ], | |
| "resolve6": [ | |
| "::/128" | |
| ] | |
| } | |
| ], | |
| "deliveryService": "demo1" | |
| } | |
| ]} | |
| ``POST`` | |
| ======== | |
| Allows a user to create :term:`Federation` Resolvers for :term:`Delivery Services`, providing the :term:`Delivery Service` is within a CDN that has some associated :term:`Federation`. | |
| .. warning:: Confusingly, this method of this endpoint does **not** create a new :term:`Federation`; to do that, the :ref:`to-api-cdns-name-federations` endpoint must be used. Furthermore, the :term:`Federation` must properly be assigned to a :term:`Delivery Service` using the :ref:`to-api-federations-id-deliveryservices` and assigned to the user creating Resolvers using :ref:`to-api-federations-id-users`. | |
| .. seealso:: The :ref:`to-api-federations-id-federation_resolvers` endpoint duplicates this functionality. | |
| :Auth. Required: Yes | |
| :Roles Required: "admin", "Federation", "operations", "Portal", or "Steering" | |
| :Permissions Required: FEDERATION-RESOLVER:CREATE, FEDERATION-RESOLVER:READ, DELIVERY-SERVICE:READ | |
| :Response Type: Object (string) | |
| Request Structure | |
| ----------------- | |
| The request payload is an array of objects that describe Delivery Service :term:`Federation` Resolver mappings. Each object in the array must be in the following format. | |
| :deliveryService: The :ref:`ds-xmlid` of the :term:`Delivery Service` which will use the :term:`Federation` Resolvers specified in ``mappings`` | |
| :mappings: An object containing two arrays of IP addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) to use as :term:`Federation` Resolvers | |
| :resolve4: An array of IPv4 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) that can resolve the :term:`Delivery Service`'s :term:`Federation` | |
| :resolve6: An array of IPv6 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) that can resolve the :term:`Delivery Service`'s :term:`Federation` | |
| .. code-block:: http | |
| :caption: Request Example | |
| POST /api/5.0/federations HTTP/1.1 | |
| Host: trafficops.infra.ciab.test | |
| User-Agent: curl/7.47.0 | |
| Accept: */* | |
| Cookie: mojolicious=... | |
| Content-Length: 118 | |
| Content-Type: application/json | |
| [{ | |
| "deliveryService":"demo1", | |
| "mappings":{ | |
| "resolve4":["127.0.0.1", "0.0.0.0/32"], | |
| "resolve6":["::1", "5efa::ff00/128"] | |
| } | |
| }] | |
| Response Structure | |
| ------------------ | |
| .. code-block:: http | |
| :caption: Response Example | |
| HTTP/1.1 200 OK | |
| Access-Control-Allow-Credentials: true | |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie | |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE | |
| Access-Control-Allow-Origin: * | |
| Content-Type: application/json | |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly | |
| Whole-Content-Sha512: B7TSUOYZPRPyi3mVy+CuxiXR5k/d0s07w4i6kYzpWS+YL79juEfkuSqfedaYG/kMA8O9XbjkWRjcBAdxOVrdTQ== | |
| X-Server-Name: traffic_ops_golang/ | |
| Date: Wed, 23 Oct 2019 22:28:02 GMT | |
| Content-Length: 152 | |
| { "alerts": [ | |
| { | |
| "text": "admin successfully created federation resolvers.", | |
| "level": "success" | |
| } | |
| ], | |
| "response": "admin successfully created federation resolvers." | |
| } | |
| ``DELETE`` | |
| ========== | |
| Deletes **all** :term:`Federation` Resolvers associated with the logged-in user's :term:`Federations`. | |
| :Auth. Required: Yes | |
| :Roles Required: "admin", "Federation", "operations", "Portal", or "Steering" | |
| :Permissions Required: FEDERATION-RESOLVER:DELETE | |
| :Response Type: Object (string) | |
| Request Structure | |
| ----------------- | |
| No parameters available | |
| .. code-block:: http | |
| :caption: Request Example | |
| DELETE /api/5.0/federations HTTP/1.1 | |
| Host: trafficops.infra.ciab.test | |
| User-Agent: curl/7.47.0 | |
| Accept: */* | |
| Cookie: mojolicious=... | |
| Response Structure | |
| ------------------ | |
| .. code-block:: http | |
| :caption: Response Example | |
| HTTP/1.1 200 OK | |
| Access-Control-Allow-Credentials: true | |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie | |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE | |
| Access-Control-Allow-Origin: * | |
| Content-Type: application/json | |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly | |
| Whole-Content-Sha512: fd7P45mIiHuYqZZW6+8K+YjY1Pe504Aaw4J4Zp9AhrqLX72ERytTqWtAp1msutzNSRUdUSC72+odNPtpv3O8uw== | |
| X-Server-Name: traffic_ops_golang/ | |
| Date: Wed, 23 Oct 2019 23:34:53 GMT | |
| Content-Length: 184 | |
| { "alerts": [ | |
| { | |
| "text": "admin successfully deleted all federation resolvers: [ 8.8.8.8 ]", | |
| "level": "success" | |
| } | |
| ], | |
| "response": "admin successfully deleted all federation resolvers: [ 8.8.8.8 ]" | |
| } | |
| ``PUT`` | |
| ======= | |
| Replaces **all** :term:`Federations` Resolvers associated with a user's :term:`Delivery Service`\ (s) with those defined inside the request payload. | |
| :Auth. Required: Yes | |
| :Roles Required: "admin", "Federation", "operations", "Portal", or "Steering" | |
| :Permissions Required: FEDERATION-RESOLVER:DELETE, FEDERATION-RESOLVER:CREATE, DELIVERY-SERVICE:READ | |
| :Response Type: Object (string) | |
| Request Structure | |
| ----------------- | |
| The request payload is an array of objects that describe Delivery Service :term:`Federation` Resolver mappings. Each object in the array must be in the following format. | |
| :deliveryService: The :ref:`ds-xmlid` of the :term:`Delivery Service` which will use the :term:`Federation` Resolvers specified in ``mappings`` | |
| :mappings: An object containing two arrays of IP addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) to use as :term:`Federation` Resolvers | |
| :resolve4: An array of IPv4 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) that can resolve the :term:`Delivery Service`'s :term:`Federation` | |
| :resolve6: An array of IPv6 addresses (or subnets in :abbr:`CIDR (Classless Inter-Domain Routing)` notation) that can resolve the :term:`Delivery Service`'s :term:`Federation` | |
| .. code-block:: http | |
| :caption: Request Example | |
| PUT /api/5.0/federations HTTP/1.1 | |
| Host: trafficops.infra.ciab.test | |
| User-Agent: curl/7.47.0 | |
| Accept: */* | |
| Cookie: mojolicious=... | |
| Content-Length: 95 | |
| Content-Type: application/json | |
| [{ "mappings": { | |
| "resolve4": ["8.8.8.8"], | |
| "resolve6": [] | |
| }, | |
| "deliveryService":"demo1" | |
| }] | |
| Response Structure | |
| ------------------ | |
| .. code-block:: http | |
| :caption: Response Example | |
| HTTP/1.1 200 OK | |
| Access-Control-Allow-Credentials: true | |
| Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie | |
| Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE | |
| Access-Control-Allow-Origin: * | |
| Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly | |
| Whole-Content-Sha512: dQ5AvQULhc254zQwgUpBl1/CHbLr/clKtkbs0Ju9f1BM4xIfbbO3puFNN9zaEaZ1iz0lBvHFp/PgfUqisD3QHA== | |
| X-Server-Name: traffic_ops_golang/ | |
| Date: Wed, 23 Oct 2019 23:22:03 GMT | |
| Content-Length: 258 | |
| Content-Type: application/json | |
| { "alerts": [ | |
| { | |
| "text": "admin successfully deleted all federation resolvers: [ 8.8.8.8 ]", | |
| "level": "success" | |
| }, | |
| { | |
| "text": "admin successfully created federation resolvers.", | |
| "level": "success" | |
| } | |
| ], | |
| "response": "admin successfully created federation resolvers." | |
| } |