Download OpenAPI specification:Download
Endpoints to perform CRUD (create, read, update, delete) operations on M2A Cache resources.
Cache Access Control Configurations define access policies for M2A Cache resources. These policies include IP allowlists, CIDR-based rules, and HTTP header matching to ensure secure and controlled access to cached content. Users can perform CRUD (create, read, update, delete) operations to manage these configurations.
The API follows the JSON:API standard (https://jsonapi.org/format/). Key relationships include:
Each configuration must be associated with a valid owner. Any invalid owner or rule will result in a Resource Not Found
error.
All API requests must include the following headers:
{
'Accept': 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json'
}
The following is an example payload for creating a new Cache Access Control Configuration:
{
'data': {
'type': 'cache-ac-config',
'attributes': {
'name': 'Example Configuration',
'ip-allowlist': [
{'range': '192.168.1.0/24', 'description': 'Corporate Network'}
]
},
'relationships': {
'owner': {
'data': {
'id': '12345',
'type': 'target-account'
}
}
}
}
}
owner required | string <uuid> |
page[offset] | string non-empty |
Accept | string Value: "application/vnd.api+json" Content type (expressed as MIME types) the client is able to understand. |
{- "links": {
- "next": "/api/cache/v1/access-control-configs/?next=eyJwayI6IHsiUyI6ICIwOTh jNzM0NC05NjQ5LTQyYWUtYTA5Ny0xMzJjN2ZiYWZjNTMjYTM3OWIzYmYtNGFmMi00ZT hkLWE4NmEtZGY0MjRmNGY3YmUwIn0sICJzayI6IHsiUyI6ICJvd25lciMwOThjNzM0N C05NjQ5LTQyYWUtYTA5Ny0xMzJjN2ZiYWZjNTMifSwgImVuZF90aW1lIjogeyJTIjogI jIwMjItMDktMTNUMTg6MTQ6MTUuMzMwNDUzKzAwMDAifX0%3D&owner=098c7344 -9649-42ae-a097-132c7fbafc53"
}, - "data": [
- {
- "id": "c49c499b-4e7e-4acb-ae83-f528b6ed194d",
- "type": "cache-ac-config",
- "attributes": {
- "name": "string",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "status": "string",
- "type": "ip-allowlist",
- "ip-address-version": "IPV4",
- "cidr-list": [
- {
- "range": "string",
- "description": "string"
}
]
}, - "relationships": {
- "owner": {
- "data": {
- "id": "7e2f2cf8-5ca3-4b66-b4e6-89633ef85fac",
- "type": "target-account"
}
}
}
}
]
}
Maximum number of configurations per target account is 50.
Content-Type | string Value: "application/vnd.api+json" The original media type of the resource. |
Accept | string Value: "application/vnd.api+json" Content type (expressed as MIME types) the client is able to understand. |
required | object (Access Control Configuration primary data) |
{- "data": {
- "id": "c49c499b-4e7e-4acb-ae83-f528b6ed194d",
- "type": "cache-ac-config",
- "attributes": {
- "name": "string",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "type": "ip-allowlist",
- "ip-address-version": "IPV4",
- "cidr-list": [
- {
- "range": "string",
- "description": "string"
}
]
}, - "relationships": {
- "owner": {
- "data": {
- "id": "7e2f2cf8-5ca3-4b66-b4e6-89633ef85fac",
- "type": "target-account"
}
}
}
}
}
{- "data": {
- "id": "c49c499b-4e7e-4acb-ae83-f528b6ed194d",
- "type": "cache-ac-config",
- "attributes": {
- "name": "string",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "status": "string",
- "type": "ip-allowlist",
- "ip-address-version": "IPV4",
- "cidr-list": [
- {
- "range": "string",
- "description": "string"
}
]
}, - "relationships": {
- "owner": {
- "data": {
- "id": "7e2f2cf8-5ca3-4b66-b4e6-89633ef85fac",
- "type": "target-account"
}
}
}
}
}
config_id required | string |
owner required | string <uuid> |
Accept | string Value: "application/vnd.api+json" Content type (expressed as MIME types) the client is able to understand. |
{- "data": {
- "id": "c49c499b-4e7e-4acb-ae83-f528b6ed194d",
- "type": "cache-ac-config",
- "attributes": {
- "name": "string",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "status": "string",
- "type": "ip-allowlist",
- "ip-address-version": "IPV4",
- "cidr-list": [
- {
- "range": "string",
- "description": "string"
}
]
}, - "relationships": {
- "owner": {
- "data": {
- "id": "7e2f2cf8-5ca3-4b66-b4e6-89633ef85fac",
- "type": "target-account"
}
}
}
}
}
Cache instances represent the configuration and setup of caching resources. These resources are typically used for CDN, cloud storage, or other high-performance data caching solutions. Users can perform CRUD (create, read, update, delete) operations to manage cache instances, including defining cache resources, settings, and routing tables.
The API follows the JSON:API standard (https://jsonapi.org/format/). Key relationships include:
Each cache instance must be associated with a valid owner. Any invalid owner or missing required data will result in a Resource Not Found
error.
All API requests must include the following headers:
{
'Accept': 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json'
}
The following is an example payload for creating a new Cache Instance:
{
'data': {
'type': 'cache-instance',
'attributes': {
'name': 'DAZN CDN',
'description': 'Cache instance for DAZN',
'cache-settings': {
'cache-resources': {
'route-table-name': 'm2a-prod-cache-route',
'route-table-region': 'eu-west-1',
'route-table-role-arn': 'arn:aws:iam::566556316321:role/m2a-stable-cache-routes-writer-cross-account-role'
},
'cache-type': 'cloudfront-emp-prog',
'cf-domain-name': 'https://d3k2p84llfqf43.cloudfront.net',
'distribution-id': '1',
'status': 'ACTIVE',
'price-class': 'North America',
'http-version': 'http2',
'ip-v6-enable': false,
'log-s3-bucket': 'bucket',
'log-s3-prefix': '/prefix'
}
},
'relationships': {
'owner': {
'data': {
'id': '12345',
'type': 'target-account'
}
}
}
}
}
owner required | string <uuid> |
page[offset] | string non-empty |
Accept | string Value: "application/vnd.api+json" Content type (expressed as MIME types) the client is able to understand. |
{- "links": {
- "next": "/api/cache/v1/access-control-configs/?next=eyJwayI6IHsiUyI6ICIwOTh jNzM0NC05NjQ5LTQyYWUtYTA5Ny0xMzJjN2ZiYWZjNTMjYTM3OWIzYmYtNGFmMi00ZT hkLWE4NmEtZGY0MjRmNGY3YmUwIn0sICJzayI6IHsiUyI6ICJvd25lciMwOThjNzM0N C05NjQ5LTQyYWUtYTA5Ny0xMzJjN2ZiYWZjNTMifSwgImVuZF90aW1lIjogeyJTIjogI jIwMjItMDktMTNUMTg6MTQ6MTUuMzMwNDUzKzAwMDAifX0%3D&owner=098c7344 -9649-42ae-a097-132c7fbafc53"
}, - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "target-account-id": "7af17bc6-d6ea-4905-b933-b9f4785bd364",
- "organisation-id": "aa66c92f-35c1-4408-ac12-5f30df0cbb1a",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "cache-settings": {
- "distribution-id": "string",
- "cf-domain-name": "string",
- "status": "ACTIVE",
- "price-class": "string",
- "http-version": "string",
- "ip-v6-enabled": true,
- "log-s3-bucket": "string",
- "log-s3-prefix": "string",
- "cache-resources": {
- "route-table-name": "string",
- "route-table-region": "string",
- "route-table-role-arn": "string"
}
}
}, - "relationship": {
- "owner": {
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "target-account"
}
}
}
}
]
}
cache_id required | string |
owner required | string <uuid> |
Accept | string Value: "application/vnd.api+json" Content type (expressed as MIME types) the client is able to understand. |
{- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "target-account-id": "7af17bc6-d6ea-4905-b933-b9f4785bd364",
- "organisation-id": "aa66c92f-35c1-4408-ac12-5f30df0cbb1a",
- "metadata": {
- "labels": [
- {
- "key": "m2amedia.tv:organisation-id",
- "value": "25fb8cc0-d04d-4b2e-955b-055d4888f2ea"
}, - {
- "key": "m2amedia.tv:target-account-name",
- "value": "Example account name"
}
]
}, - "cache-settings": {
- "distribution-id": "string",
- "cf-domain-name": "string",
- "status": "ACTIVE",
- "price-class": "string",
- "http-version": "string",
- "ip-v6-enabled": true,
- "log-s3-bucket": "string",
- "log-s3-prefix": "string",
- "cache-resources": {
- "route-table-name": "string",
- "route-table-region": "string",
- "route-table-role-arn": "string"
}
}
}, - "relationship": {
- "owner": {
- "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "target-account"
}
}
}
}
}