createStreamingDistribution2018_06_18 method

Future<CreateStreamingDistributionResult> createStreamingDistribution2018_06_18(
  1. {@required StreamingDistributionConfig streamingDistributionConfig}
)

Creates a new RMTP distribution. An RTMP distribution is similar to a web distribution, but an RTMP distribution streams media files using the Adobe Real-Time Messaging Protocol (RTMP) instead of serving files using HTTP.

To create a new web distribution, submit a POST request to the CloudFront API version/distribution resource. The request body must include a document with a StreamingDistributionConfig element. The response echoes the StreamingDistributionConfig element and returns other information about the RTMP distribution.

To get the status of your request, use the GET StreamingDistribution API action. When the value of Enabled is true and the value of Status is Deployed, your distribution is ready. A distribution usually deploys in less than 15 minutes.

For more information about web distributions, see Working with RTMP Distributions in the Amazon CloudFront Developer Guide. Beginning with the 2012-05-05 version of the CloudFront API, we made substantial changes to the format of the XML document that you include in the request body when you create or update a web distribution or an RTMP distribution, and when you invalidate objects. With previous versions of the API, we discovered that it was too easy to accidentally delete one or more values for an element that accepts multiple values, for example, CNAMEs and trusted signers. Our changes for the 2012-05-05 release are intended to prevent these accidental deletions and to notify you when there's a mismatch between the number of values you say you're specifying in the Quantity element and the number of values specified.

May throw CNAMEAlreadyExists. May throw StreamingDistributionAlreadyExists. May throw InvalidOrigin. May throw InvalidOriginAccessIdentity. May throw AccessDenied. May throw TooManyTrustedSigners. May throw TrustedSignerDoesNotExist. May throw MissingBody. May throw TooManyStreamingDistributionCNAMEs. May throw TooManyStreamingDistributions. May throw InvalidArgument. May throw InconsistentQuantities.

Parameter streamingDistributionConfig : The streaming distribution's configuration information.

Implementation

Future<CreateStreamingDistributionResult>
    createStreamingDistribution2018_06_18({
  @_s.required StreamingDistributionConfig streamingDistributionConfig,
}) async {
  ArgumentError.checkNotNull(
      streamingDistributionConfig, 'streamingDistributionConfig');
  final $result = await _protocol.sendRaw(
    method: 'POST',
    requestUri: '/2018-06-18/streaming-distribution',
    payload: streamingDistributionConfig.toXml('StreamingDistributionConfig'),
    exceptionFnMap: _exceptionFns,
  );
  final $elem = await _s.xmlFromResponse($result);
  return CreateStreamingDistributionResult(
    streamingDistribution: StreamingDistribution.fromXml($elem),
    eTag: _s.extractHeaderStringValue($result.headers, 'ETag'),
    location: _s.extractHeaderStringValue($result.headers, 'Location'),
  );
}