Download OpenAPI specification:Download
Specification for the M2A Connect API.
Organisations are the top of the M2A Cloud resource hierarchy. They represent the encompassing notion of ownership - a single Organisation can span multiple Target Accounts. User permissions are scoped first and foremost at an Organisation level. The first step to getting started with M2A Cloud is by having your Organisation created. This Organisation will act as the unifying construct for every resource M2A Cloud manages on your behalf.
Create an organisation.
required | object (organisation-config) |
required | object (standard_metadata) |
{- "config": {
- "label-definitions": [
- {
- "key": "customer:event-type",
- "display": "Event Type"
}
], - "ui-routing-mode": "event",
- "ui-uses-schedule-api": true,
- "uses-schedule-api": true
}, - "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}
}
{- "config": {
- "label-definitions": [
- {
- "key": "customer:event-type",
- "display": "Event Type"
}
], - "ui-routing-mode": "event",
- "ui-uses-schedule-api": true,
- "uses-schedule-api": true
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}
}
Get an Organisation.
organisation-id required | string <uuid> The ID of the owning Organistion. |
{- "config": {
- "label-definitions": [
- {
- "key": "customer:event-type",
- "display": "Event Type"
}
], - "ui-routing-mode": "event",
- "ui-uses-schedule-api": true,
- "uses-schedule-api": true
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}
}
Target Accounts sit immediately beneath Organisations in the resource hierarchy, with all other resources beneath them. A single Target Account represents an AWS account that is managed by one or more M2A Cloud products. Any Cloud resources that are underpinned by real AWS resources will ultimately need to be bound to or parented by a Target Account. Target Accounts can take different roles in the distribution of media with Connect, generally "providers" will have logins to the M2A Cloud console and/or clients for the M2A Connect APIs, while "subscribers" will be Target Accounts at which configuration can be pointed (especially) entitlements. Target Accounts provide a mechanism by which an Organisation can provide permission scoped access to subset of their resources. For example: a broadcaster, Skii Sports, has configured M2A Connect to carry their live content. They have a number of customers, many of which recieve some specific subset of that content depending on preconfigured rules. Connect manages those rules for them, ensuring the content arrives on time and in the correct format. Skii Sports has a special arrangement with a partner, Board Watchers, in which Board Watchers can choose to take a specific subset of Skii Sport content but according to Board Watchers whim - they might want "Murder on Mont Blanc" as long as Avalanche Anderson is racing, but as soon as he finishes they'll want to switch over to "Snowbody Knows Me". Skii Sports has a Target Account provisioned for their friends at Board Watchers, granting Board Watchers a restricted access to their Organisation. Board Watchers can use their Target Account to perform their own content management, on behalf of Skii Sports and in-line with their agreement.
Create a new Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
Array of objects or objects (action-notifications) | |
aws-account-number required | string (aws-account-number) The AWS account number. |
required | object (standard_metadata) |
proxy-whitelist required | Array of strings (proxy-whitelist) [^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\...] A list of CIDR blocks which will have permission to view the proxy streams for all sources created under this target account. |
setup-run-iac-process | boolean (setup-run-iac-process) If true, the CF IAC processes will be run on this target account. |
{- "action-notifications": [
], - "aws-account-number": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-whitelist": [
- "string"
], - "setup-run-iac-process": false
}
{- "action-notifications": [
], - "aws-account-number": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-whitelist": [
- "string"
], - "setup-run-iac-process": false
}
Get a Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
{- "action-notifications": [
], - "aws-account-number": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-whitelist": [
- "string"
], - "setup-run-iac-process": false
}
Delete a Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
{- "message": "Success"
}
The network endpoint provides clients of the M2A Connect API to interact with the network configuration of the specified Target Account, especially with reference to VPC interfaces. This is particularly useful for establishing the options available when creating resources that require VPC interfaces.
Get a list of networks VPCs for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
{- "vpcs": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "my-awsome-vpc",
- "security-groups": [
- {
- "id": "sg-123abc45d6789e0fa",
- "name": "my-security-group"
}
], - "subnets": [
- {
- "az": "eu-west-1a",
- "id": "subnet-123abc45d6789e0fa",
- "name": "my-subnet"
}
]
}
]
}
Events are the mechanism by which a user of Connect can enable their video workflow, how ever its been configured, to come to life. Scheduled Events must target at least one Source. Once scheduled, the targeted Source will be orchestrated according to the life-cycle of the event, ensuring video is made available. For example: Skii Sports have loaded their Event schedule in to Connect via the Events API endpoint for the coming season. Some of those Events target a single Source, the different slopes of Mont Blanc, but other Events, such as the opening day ceremony, are scheduled across every Source. Each Source is live for only as long as it needs to be to ensure the Event that is running has all the correct video.
Get events for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
inline | boolean Whether to inline the event data in the response. Default is |
interval | string Example: interval=2020-08-01T00:00:00Z/P1D Optional time range to list events for. Only events whose duration intersect or overlap the given range will be returned. Both lower and upper bounds are inclusive. If no events intersect or overlap the range, then the list of events will be empty. Time range to search for is given as an ISO 8601 interval. |
last-evaluated-key | string <byte> The last evaluated key returned from the response. To be used to request the next page of results. |
page-size | integer The maximum number of events that may be returned. A request may return fewer than the value of page-size. |
{- "items": [
]
}
Create a new Event for a Target Cccount.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
end-time required | string <date-time> (end-time) The time at which all streaming processes should end. This cannot be before the scheduled on-air-end-time of an event has passed. |
required | object (standard_metadata) |
on-air-end-time required | string <date-time> (on-air-end-time) The on-air-start-time and on-air-end-time allow a client of the API to define an arbitrary time window within the event's start-time and end-time. This window might be used by the client, for example, to distinguish between the line up and show time. The on-air-end-time must not follow the events end-time. |
on-air-start-time required | string <date-time> (on-air-start-time) The on-air-start-time and on-air-end-time allow a client of the API to define an arbitrary time window within the event's start-time and end-time. This window might be used by the client, for example, to distinguish between the line up and show time. The on-air-start-time must not precede the events start-time. |
resource-ids required | Array of strings <uuid> (resource-ids) [ items <uuid > ] The resource-ids property is an array of unique identifiers for resources that are associated with the event. The resources will be of M2A Connect sources. |
start-time required | string <date-time> (start-time) The time at which all streaming processes should begin. This must not be after the scheduled on-air-start-time of an event. This might be used, for example, to send bars and tone to check the readiness of the system. |
{- "end-time": "2019-01-01T00:00:00Z",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "on-air-end-time": "2019-01-01T00:00:00Z",
- "on-air-start-time": "2019-01-01T00:00:00Z",
- "resource-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "start-time": "2019-01-01T00:00:00Z"
}
{- "end-time": "2019-01-01T00:00:00Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "on-air-end-time": "2019-01-01T00:00:00Z",
- "on-air-start-time": "2019-01-01T00:00:00Z",
- "resource-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "start-time": "2019-01-01T00:00:00Z"
}
Get a event by its unique ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
event-id required | string <uuid> The ID of the event. |
{- "end-time": "2019-01-01T00:00:00Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "on-air-end-time": "2019-01-01T00:00:00Z",
- "on-air-start-time": "2019-01-01T00:00:00Z",
- "resource-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "start-time": "2019-01-01T00:00:00Z"
}
Update a event for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
event-id required | string <uuid> The ID of the event. |
The event update payload.
end-time | string <date-time> (end-time) The time at which all streaming processes should end. This cannot be before the scheduled on-air-end-time of an event has passed. |
object (standard_metadata) | |
on-air-end-time | string <date-time> (on-air-end-time) The on-air-start-time and on-air-end-time allow a client of the API to define an arbitrary time window within the event's start-time and end-time. This window might be used by the client, for example, to distinguish between the line up and show time. The on-air-end-time must not follow the events end-time. |
on-air-start-time | string <date-time> (on-air-start-time) The on-air-start-time and on-air-end-time allow a client of the API to define an arbitrary time window within the event's start-time and end-time. This window might be used by the client, for example, to distinguish between the line up and show time. The on-air-start-time must not precede the events start-time. |
resource-ids | Array of strings <uuid> (resource-ids) [ items <uuid > ] The resource-ids property is an array of unique identifiers for resources that are associated with the event. The resources will be of M2A Connect sources. |
start-time | string <date-time> (start-time) The time at which all streaming processes should begin. This must not be after the scheduled on-air-start-time of an event. This might be used, for example, to send bars and tone to check the readiness of the system. |
{- "end-time": "2019-01-01T00:00:00Z",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "on-air-end-time": "2019-01-01T00:00:00Z",
- "on-air-start-time": "2019-01-01T00:00:00Z",
- "resource-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "start-time": "2019-01-01T00:00:00Z"
}
{- "end-time": "2019-01-01T00:00:00Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "on-air-end-time": "2019-01-01T00:00:00Z",
- "on-air-start-time": "2019-01-01T00:00:00Z",
- "resource-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "start-time": "2019-01-01T00:00:00Z"
}
Delete a event for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
event-id required | string <uuid> The ID of the event. |
{- "message": "Success"
}
Sources are the natural ingest point for video in to Connect. Once provisioned, a Source presents an interface to which any upstream process can send video. Sources can be configured in a variety of ways to suit the specific needs of the video distribution system. They can reliably move video accross large distances, offering flexibility, security, reliability, and "just in time" costs. When a Source has a running Event that targets it, the Source is said to be active. Video can be moved back out of a Source by routing the Source in to one or more Outputs. This routing can be managed automatically, based on the configuration of the Outputs and Sources, or as a manual process. For example: Skii Sports have 82 Sources configured, two for each of the slopes on Mont Blanc. Connect turns the Sources on or off every day according to the schedule. While active, the video moving through the Source is routed to any downstream system.
Get a list of Sources for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
include-deleted | boolean Option to return sources that have been marked as deleted. |
include-hidden | boolean Option to return sources that have been marked as hidden. |
inline | boolean Whether to inline the event data in the response. Default is |
last-evaluated-key | string <byte> The last evaluated key returned from the response. To be used to request the next page of results. |
page-size | integer The maximum number of events that may be returned. A request may return fewer than the value of page-size. |
{- "items": [
]
}
Create a new Source for a Target Cccount.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
object (alarm) | |
egress-regions required | Array of strings (egress-region) A valid AWS region. note that the ingress-region must also be included in this list if entitlements are to be made in that region. |
entitlement-prefix required | string (entitlement-prefix) ^[a-zA-Z1-9_-]{1,42}$ A custom name to be attached as a prefix to all entitlements created for this source. NOTE: Changing this field after the creation of entitlements will require all subscribers to update their subscriptions, and should be done with caution. |
required | Array of objects or (object or objects) or objects or objects or objects or objects or objects or objects [ 1 .. 2 ] items A list of endpoints to create. Multiple entries provide geographic resiliency. If there is a single entry, the Source will be created in a single Availability Zone. If there are two entries, the Source will be created in two different Availability Zones |
ingress-region required | string (ingress-region) The name of the region where video will be ingested. |
hidden | boolean Source visibility. Toggle attribute to hide source from batch queries. |
required | object (standard_metadata) |
{- "alarm": {
- "level": "TR_101_290_PRIORITY_1"
}, - "egress-regions": [
- "string"
], - "entitlement-prefix": "string",
- "ingest-endpoints": [
- {
- "decryption": {
- "enabled": false
}, - "entitlement-arn": "arn:aws:mediaconnect:eu-west-1:123456789012:entitlement/my-entitlement",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "protocol": "entitlement"
}
], - "ingress-region": "string",
- "hidden": true,
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}
}
{- "alarm": {
- "level": "TR_101_290_PRIORITY_1"
}, - "egress-flow-arns": [
- "string"
], - "egress-regions": [
- "string"
], - "entitlement-prefix": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ingest-endpoints": [
- {
- "decryption": {
- "enabled": false
}, - "entitlement-arn": "arn:aws:mediaconnect:eu-west-1:123456789012:entitlement/my-entitlement",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "protocol": "entitlement"
}
], - "ingress-region": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-enabled": true,
- "provisioned-flows": {
- "ingress-flows": [
- {
- "arn": "string",
- "flow-sources": [
- {
- "ip": "string",
- "name": "string",
- "port": 0
}
], - "name": "string"
}
]
}, - "provisioning-error-reason": "string",
- "provisioning-status": "creation-pending",
- "provisioning-status-timestamp": "2019-08-24T14:15:22Z"
}
Get a Source by its unique ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
source-id required | string <uuid> The ID of the Source. |
{- "alarm": {
- "level": "TR_101_290_PRIORITY_1"
}, - "egress-flow-arns": [
- "string"
], - "egress-regions": [
- "string"
], - "entitlement-prefix": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ingest-endpoints": [
- {
- "decryption": {
- "enabled": false
}, - "entitlement-arn": "arn:aws:mediaconnect:eu-west-1:123456789012:entitlement/my-entitlement",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "protocol": "entitlement"
}
], - "ingress-region": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-enabled": true,
- "provisioned-flows": {
- "ingress-flows": [
- {
- "arn": "string",
- "flow-sources": [
- {
- "ip": "string",
- "name": "string",
- "port": 0
}
], - "name": "string"
}
]
}, - "provisioning-error-reason": "string",
- "provisioning-status": "creation-pending",
- "provisioning-status-timestamp": "2019-08-24T14:15:22Z"
}
Update a Source for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
source-id required | string <uuid> The ID of the Source. |
The Source update payload.
object (alarm) | |
egress-regions | Array of strings (egress-region) A valid AWS region. note that the ingress-region must also be included in this list if entitlements are to be made in that region. |
entitlement-prefix | string (entitlement-prefix) ^[a-zA-Z1-9_-]{1,42}$ A custom name to be attached as a prefix to all entitlements created for this source. NOTE: Changing this field after the creation of entitlements will require all subscribers to update their subscriptions, and should be done with caution. |
Array of objects or (object or objects) or objects or objects or objects or objects or objects or objects [ 1 .. 2 ] items A list of endpoints to create. Multiple entries provide geographic resiliency. If there is a single entry, the Source will be created in a single Availability Zone. If there are two entries, the Source will be created in two different Availability Zones | |
ingress-region | string (ingress-region) The name of the region where video will be ingested. |
object (standard_metadata) |
{- "alarm": {
- "level": "TR_101_290_PRIORITY_1"
}, - "egress-regions": [
- "string"
], - "entitlement-prefix": "string",
- "ingest-endpoints": [
- {
- "decryption": {
- "enabled": false
}, - "entitlement-arn": "arn:aws:mediaconnect:eu-west-1:123456789012:entitlement/my-entitlement",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "protocol": "entitlement"
}
], - "ingress-region": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}
}
{- "alarm": {
- "level": "TR_101_290_PRIORITY_1"
}, - "egress-flow-arns": [
- "string"
], - "egress-regions": [
- "string"
], - "entitlement-prefix": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ingest-endpoints": [
- {
- "decryption": {
- "enabled": false
}, - "entitlement-arn": "arn:aws:mediaconnect:eu-west-1:123456789012:entitlement/my-entitlement",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "protocol": "entitlement"
}
], - "ingress-region": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "proxy-enabled": true,
- "provisioned-flows": {
- "ingress-flows": [
- {
- "arn": "string",
- "flow-sources": [
- {
- "ip": "string",
- "name": "string",
- "port": 0
}
], - "name": "string"
}
]
}, - "provisioning-error-reason": "string",
- "provisioning-status": "creation-pending",
- "provisioning-status-timestamp": "2019-08-24T14:15:22Z"
}
Delete a Source for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
source-id required | string <uuid> The ID of the Source. |
{- "message": "Success"
}
Get high-level description of the status for a Source.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
source-id required | string <uuid> The ID of the Source. |
{- "health": {
- "status": "healthy",
- "reasons": [
- "InputNotConnected"
]
}, - "running-status": "running"
}
Get metrics for a Source.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
source-id required | string <uuid> The ID of the Source. |
desired, | string A comma-seperated list of keys for desired metrics. Unknown keys are ignored., |
end-time | string <date-time> The latest time in the desired time series. If not provided, the current time is used. |
start-time | string <date-time> The earliest time in the desired time series. If not provided, a sensible default is selected. |
{- "series": [
- {
- "identity": "string",
- "metrics": "string",
- "samples": [
- "2019-08-24T14:15:22Z"
], - "values": [
- 0
], - "unit": "string"
}
]
}
Destinations allow a user to define the configuration of a down stream system. Having configured a Destination, the user can attach the Destination to an Output and, provided the Output has an active Source routed in to it, video will flow to that configured reciever. Destinations can be attached to none or more Outputs, and any subsequent changes to the Destination will be reflected in the configuration of those Outputs. For example: Skii Sports have configured a number of Destinations, one for each of their UK based partners, all of whom take RTMP. They have configured another set of Destinations, this time for the German partners, all of whom take RTP. When one of their German partners wants to recieve content on a different port, a Skii Sports operator can update the respective Destination and all Outputs using that Destination will be reconfigured to reflect the change.
Get a list of Destinations for a Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
{- "items": [
]
}
Create a new Destination for a Target Cccount.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
availability-zone required | string (availability-zone) AWS Availability zone for which the configuration applies. |
destination-ip required | string (destination-ip) IP address of the destination. |
enabled required | boolean (enabled) Whether the configuration is enabled, making media routed into the output available in the given region. If enabling the configuration would exceed the limit set by the distributor's offer or an attempt is made to enable a region that is not permitted by the distributor's offer, then the request will be rejected. |
Array of objects | |
name required | string (name) [A-Za-z0-9-_]{1,64} Name of the AWS MediaConnect output/entitlement as it will appear in the MediaConnect Flow. Must be Unique for the M2A Output. |
port required | integer (port) Port used by the destination, must be unique for all destinations of this destination's type that are attached to the same Output. |
region required | string (region) The aws region name to put the resource in. |
vpc-interface-name required | string (vpc-interface-name) Name of vpc interface to select from those configured for a Source's ingress flow or attached Output |
destination-type required | string (type-cdi) Value: "cdi" The type of output. |
{- "availability-zone": "string",
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string",
- "destination-type": "cdi"
}
{- "availability-zone": "string",
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string",
- "destination-type": "cdi"
}
Get a Destination by its unique ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
destination-id required | string <uuid> The ID of the destination. |
label | string <byte> Find any resource with matching label and key. The label is a key-value pair with a comman acting as the delimiter. For example, to find all resources with a key of |
{- "availability-zone": "string",
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string",
- "destination-type": "cdi"
}
Delete a Destination for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
destination-id required | string <uuid> The ID of the destination. |
{- "message": "Success"
}
Update a Destination for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
destination-id required | string <uuid> The ID of the destination. |
The Destination update payload.
availability-zone required | string (availability-zone) AWS Availability zone for which the configuration applies. |
destination-ip required | string (destination-ip) IP address of the destination. |
enabled required | boolean (enabled) Whether the configuration is enabled, making media routed into the output available in the given region. If enabling the configuration would exceed the limit set by the distributor's offer or an attempt is made to enable a region that is not permitted by the distributor's offer, then the request will be rejected. |
Array of objects | |
name required | string (name) [A-Za-z0-9-_]{1,64} Name of the AWS MediaConnect output/entitlement as it will appear in the MediaConnect Flow. Must be Unique for the M2A Output. |
port required | integer (port) Port used by the destination, must be unique for all destinations of this destination's type that are attached to the same Output. |
region required | string (region) The aws region name to put the resource in. |
vpc-interface-name required | string (vpc-interface-name) Name of vpc interface to select from those configured for a Source's ingress flow or attached Output |
destination-type required | string (type-cdi) Value: "cdi" The type of output. |
{- "availability-zone": "string",
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string",
- "destination-type": "cdi"
}
{- "availability-zone": "string",
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string",
- "destination-type": "cdi"
}
Outputs are the natural egress point for video in Connect. Once provisioned, an Output presents a piece on which interfaces can be configured for downstream processes to recieve video. Outputs can be used in one of two main ways: ephemeral
or persistent
. Persistent
Outputs will always present the same address to any down stream process once provisioned, the addresses presented by Ephemeral
Outputs may change. Outputs present an interface on which "offers" and "selections" can be made. When an Output is created, the user must define some rules about what kind of content they want to move through the Output. They can then configure the connect for the downstream reciever based on those rules. An Output takes video from an active Source when the Source is routed in to the Output. This routing can be managed automatically, based on the configuration of the Output and Source, or as a manual process. For example: Skii Sports has 84 Outputs: 82 are ephemeral
Outputs, one for each of the Sources. These Outputs dont have any special routing logic - they simply provide interfaces for Skii Sports customers to get their video when the Source is active. The other 2 are configured differently:
Murder on Mont Blanc
Get a list of Output Offers for a Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
{- "items": [
]
}
Create a new Output Offer for a Target Cccount.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
address-durability required | string (address-durability) Enum: "ephemeral" "persistent" Determines whether the resulting output will offer persistent or potentially ephemeral addressing. Persistent addressing implies that an endpoint address should never change for the lifetime of the output. Ephemeral does not give such a guarantee. For example, any user-requested change in the routing into the output could cause an address change. Additionally, the service may trigger a reconfiguration for operational or any other reason as it sees fit. Whilst changes should be infrequent and should not occur during events, users in ephemeral mode should always confirm the current address before use. The actual type of addressing used is dependent on the |
cross-region-routing | boolean (cross-region-routing) Whether or not outputs can be routed cross-region. When enabled, Connect inputs and outputs may exist in different AWS regions. |
required | object (_destinations_config) This is configuration of destination media protocols enforced by the distributor. |
enabled required | boolean (offer-enabled) Whether or not the output is enabled. When disabled, no media will be routed to the output. |
event-query required | string (event-query) Which events to route into the output expressed as a selector. A selector can be either the value of an event key metadata or an event value metadata. It needs to match strictly with either of one. If empty, then all active events are taken as candidates for routing into the output. See |
required | object (standard_metadata) |
regions required | Array of strings (regions) |
source-query required | string (source-query) Which sources to route into the output expressed as a selector. A selector can be either the value of an event key metadata or an event value metadata. It needs to match strictly with either of one. Restricts the set of sources as yielded by the active event selector down to, ideally, a single source. Only the sources for events that were previously matched are considered. If the combination of selectors would result in more than one source being routed into the output then no sources are routed to the output. Also note that the subscriber may further refine the set of sources with their own, similar selector. |
{- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "source-query": "string"
}
{- "active-source": "string",
- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "selection": "string",
- "source-query": "string"
}
Get an Output Offer by its unique ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
offer-id required | string <uuid> The ID of the offer. |
{- "active-source": "string",
- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "selection": "string",
- "source-query": "string"
}
Update an Output Offer for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
offer-id required | string <uuid> The ID of the offer. |
The Output Offer update payload.
address-durability required | string (address-durability) Enum: "ephemeral" "persistent" Determines whether the resulting output will offer persistent or potentially ephemeral addressing. Persistent addressing implies that an endpoint address should never change for the lifetime of the output. Ephemeral does not give such a guarantee. For example, any user-requested change in the routing into the output could cause an address change. Additionally, the service may trigger a reconfiguration for operational or any other reason as it sees fit. Whilst changes should be infrequent and should not occur during events, users in ephemeral mode should always confirm the current address before use. The actual type of addressing used is dependent on the |
cross-region-routing | boolean (cross-region-routing) Whether or not outputs can be routed cross-region. When enabled, Connect inputs and outputs may exist in different AWS regions. |
required | object (_destinations_config) This is configuration of destination media protocols enforced by the distributor. |
enabled required | boolean (offer-enabled) Whether or not the output is enabled. When disabled, no media will be routed to the output. |
event-query required | string (event-query) Which events to route into the output expressed as a selector. A selector can be either the value of an event key metadata or an event value metadata. It needs to match strictly with either of one. If empty, then all active events are taken as candidates for routing into the output. See |
required | object (standard_metadata) |
regions required | Array of strings (regions) |
source-query required | string (source-query) Which sources to route into the output expressed as a selector. A selector can be either the value of an event key metadata or an event value metadata. It needs to match strictly with either of one. Restricts the set of sources as yielded by the active event selector down to, ideally, a single source. Only the sources for events that were previously matched are considered. If the combination of selectors would result in more than one source being routed into the output then no sources are routed to the output. Also note that the subscriber may further refine the set of sources with their own, similar selector. |
{- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "source-query": "string"
}
{- "active-source": "string",
- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "selection": "string",
- "source-query": "string"
}
Delete an Output Offer for a target account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
offer-id required | string <uuid> The ID of the offer. |
{- "message": "Success"
}
Get a list of Output Selections for a Target Account. If inline is passed will retrieve full Output Selection records instead of resource URLs, with one notable exception, the Output Selections will always report back with status UNAVAILABLE. This is because getting the status is currently a costly operation. To get the true status of an Output Selection a further call must be made to the individual Output Selection endpoints
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
include-deleted | boolean Option to return sources that have been marked as deleted. |
inline | boolean Whether to inline the event data in the response. Default is |
last-evaluated-key | string <byte> The last evaluated key returned from the response. To be used to request the next page of results. |
page-size | integer The maximum number of events that may be returned. A request may return fewer than the value of page-size. |
{
}
Get an output selection by ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
selection-id required | string <uuid> The ID of the Selection. |
{- "active-source": "string",
- "destinations": {
- "cdi": [
- {
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "status": "AVAILABLE",
- "url": "string",
- "vpc-interface-name": "string"
}
], - "offered-details": { },
- "type": "cdi"
}, - "event-query": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "offer": {
- "address-durability": "ephemeral",
- "cross-region-routing": true,
- "destinations-config": {
- "available": {
- "entitlement": {
- "subscriber-pays": 100
}
}
}, - "enabled": true,
- "event-query": "string",
- "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "regions": [
- "string"
], - "source-query": "string"
}, - "routing-evaluation": {
- "candidate-source-ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "last-updated-date": "2019-08-24T14:15:22Z"
}, - "source-query": "string"
}
Update an output with a selection by its ID.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
selection-id required | string <uuid> The ID of the Selection. |
{- "destinations": {
- "cdi": [
- {
- "destination-ip": "string",
- "enabled": true,
- "media-stream-output-configurations": [
- {
- "encoding-name": "pcm",
- "media-stream-name": "string"
}
], - "name": "string",
- "port": 0,
- "region": "string",
- "vpc-interface-name": "string"
}
], - "type": "cdi"
}, - "metadata": {
- "labels": [
- {
- "key": "my-interesting-label",
- "value": "This labels helpful value"
}
]
}, - "event-query": "string",
- "source-query": "string"
}
Attachments are how Outputs can be configured depending on what has been defined in the Destination. Each Attachment links exactly one Output to one Destination. When the Output has an active Source routed to it, the system configuration necessary for the down stream taker of the Destination will be advertised in the corresponding Attachment. Deleting an Attachment removes the link between an Output and a Destination. For example: Skii Sports have created Attachments for their even numbered Outputs and their RTMP Destinations, and their odd numbered Outputs and their RTP Destinations. These Attachments ensure changes to any Destination are reflected in the Output, and that the resources provisioned to enable streaming are made available to the user.
Get a list of Output Attachments for a Target Account.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
destination-id required | string <uuid> The ID of the destination. |
output-id required | string <uuid> The ID of the Output. |
{- "destination-id": "0f3e31cc-cbaf-4d2c-8c48-805f1b67bbd0",
- "output-id": "ae61e643-3cc5-42aa-ad48-ed13c97d39d2"
}
Create a new Output Attachment for a Target Cccount.
organisation-id required | string <uuid> The ID of the owning Organistion. |
target-account-id required | string <uuid> The ID of the owning Target Account. |
destination-id required | string <uuid> (resource-id) The unique identifier of the resource. This is a UUID. |
output-id required | string <uuid> (resource-id) The unique identifier of the resource. This is a UUID. |
{- "destination-id": "0f3e31cc-cbaf-4d2c-8c48-805f1b67bbd0",
- "output-id": "ae61e643-3cc5-42aa-ad48-ed13c97d39d2"
}
{- "destination-id": "0f3e31cc-cbaf-4d2c-8c48-805f1b67bbd0",
- "output-id": "ae61e643-3cc5-42aa-ad48-ed13c97d39d2"
}