public CloudFrontOperations() { client = new AmazonCloudFrontClient(credentials, Amazon.RegionEndpoint.USWest1); S3Origin origin = new S3Origin { } client.CreateDistribution(new CreateDistributionRequest { DistributionConfig = new DistributionConfig { Origins = new Origins { } } }) }
public IRequest Marshall(UpdateStreamingDistributionRequest updateStreamingDistributionRequest) { IRequest request = new DefaultRequest(updateStreamingDistributionRequest, "AmazonCloudFront"); request.HttpMethod = "PUT"; if (updateStreamingDistributionRequest.IfMatch != null) { request.Headers.Add("If-Match", updateStreamingDistributionRequest.IfMatch); } string uriResourcePath = "2012-07-01/streaming-distribution/{Id}/config"; uriResourcePath = uriResourcePath.Replace("{Id}", updateStreamingDistributionRequest.Id ?? ""); if (uriResourcePath.Contains("?")) { string queryString = uriResourcePath.Substring(uriResourcePath.IndexOf("?") + 1); uriResourcePath = uriResourcePath.Substring(0, uriResourcePath.IndexOf("?")); foreach (string s in queryString.Split('&', ';')) { string[] nameValuePair = s.Split('='); if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0) { request.Parameters.Add(nameValuePair[0], nameValuePair[1]); } else { request.Parameters.Add(nameValuePair[0], null); } } } request.ResourcePath = uriResourcePath; StringWriter stringWriter = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter); xmlWriter.Namespaces = true; if (updateStreamingDistributionRequest != null) { StreamingDistributionConfig streamingDistributionConfigStreamingDistributionConfig = updateStreamingDistributionRequest.StreamingDistributionConfig; if (streamingDistributionConfigStreamingDistributionConfig != null) { xmlWriter.WriteStartElement("StreamingDistributionConfig", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); if (streamingDistributionConfigStreamingDistributionConfig.IsSetCallerReference()) { xmlWriter.WriteElementString("CallerReference", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingDistributionConfigStreamingDistributionConfig.CallerReference.ToString()); } if (streamingDistributionConfigStreamingDistributionConfig != null) { S3Origin s3OriginS3Origin = streamingDistributionConfigStreamingDistributionConfig.S3Origin; if (s3OriginS3Origin != null) { xmlWriter.WriteStartElement("S3Origin", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); if (s3OriginS3Origin.IsSetDomainName()) { xmlWriter.WriteElementString("DomainName", "http://cloudfront.amazonaws.com/doc/2012-07-01/", s3OriginS3Origin.DomainName.ToString()); } if (s3OriginS3Origin.IsSetOriginAccessIdentity()) { xmlWriter.WriteElementString("OriginAccessIdentity", "http://cloudfront.amazonaws.com/doc/2012-07-01/", s3OriginS3Origin.OriginAccessIdentity.ToString()); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { Aliases aliasesAliases = streamingDistributionConfigStreamingDistributionConfig.Aliases; if (aliasesAliases != null) { xmlWriter.WriteStartElement("Aliases", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); if (aliasesAliases.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2012-07-01/", aliasesAliases.Quantity.ToString()); } if (aliasesAliases != null) { List <string> aliasesAliasesitemsList = aliasesAliases.Items; if (aliasesAliasesitemsList != null && aliasesAliasesitemsList.Count > 0) { int aliasesAliasesitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); foreach (string aliasesAliasesitemsListValue in aliasesAliasesitemsList) { xmlWriter.WriteStartElement("CNAME", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); xmlWriter.WriteValue(aliasesAliasesitemsListValue); xmlWriter.WriteEndElement(); aliasesAliasesitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetComment()) { xmlWriter.WriteElementString("Comment", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingDistributionConfigStreamingDistributionConfig.Comment.ToString()); } if (streamingDistributionConfigStreamingDistributionConfig != null) { StreamingLoggingConfig streamingLoggingConfigLogging = streamingDistributionConfigStreamingDistributionConfig.Logging; if (streamingLoggingConfigLogging != null) { xmlWriter.WriteStartElement("Logging", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); if (streamingLoggingConfigLogging.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingLoggingConfigLogging.Enabled.ToString().ToLower()); } if (streamingLoggingConfigLogging.IsSetBucket()) { xmlWriter.WriteElementString("Bucket", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingLoggingConfigLogging.Bucket.ToString()); } if (streamingLoggingConfigLogging.IsSetPrefix()) { xmlWriter.WriteElementString("Prefix", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingLoggingConfigLogging.Prefix.ToString()); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { TrustedSigners trustedSignersTrustedSigners = streamingDistributionConfigStreamingDistributionConfig.TrustedSigners; if (trustedSignersTrustedSigners != null) { xmlWriter.WriteStartElement("TrustedSigners", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); if (trustedSignersTrustedSigners.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2012-07-01/", trustedSignersTrustedSigners.Enabled.ToString().ToLower()); } if (trustedSignersTrustedSigners.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2012-07-01/", trustedSignersTrustedSigners.Quantity.ToString()); } if (trustedSignersTrustedSigners != null) { List <string> trustedSignersTrustedSignersitemsList = trustedSignersTrustedSigners.Items; if (trustedSignersTrustedSignersitemsList != null && trustedSignersTrustedSignersitemsList.Count > 0) { int trustedSignersTrustedSignersitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); foreach (string trustedSignersTrustedSignersitemsListValue in trustedSignersTrustedSignersitemsList) { xmlWriter.WriteStartElement("AwsAccountNumber", "http://cloudfront.amazonaws.com/doc/2012-07-01/"); xmlWriter.WriteValue(trustedSignersTrustedSignersitemsListValue); xmlWriter.WriteEndElement(); trustedSignersTrustedSignersitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetPriceClass()) { xmlWriter.WriteElementString("PriceClass", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingDistributionConfigStreamingDistributionConfig.PriceClass.ToString()); } if (streamingDistributionConfigStreamingDistributionConfig.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2012-07-01/", streamingDistributionConfigStreamingDistributionConfig.Enabled.ToString().ToLower()); } xmlWriter.WriteEndElement(); } } try { request.Content = System.Text.Encoding.UTF8.GetBytes(stringWriter.ToString()); request.Headers.Add("Content-Type", "application/xml"); } catch (EncoderFallbackException e) { throw new AmazonServiceException("Unable to marshall request to XML", e); } return(request); }
internal AuthlambdaStack(Construct scope, string id, AuthlambdaStackProps props = null) : base(scope, id, props) { functionsStack = props.functionsStack; Bucket websiteBucket = new Bucket(this, "websiteBucket", new BucketProps() { BlockPublicAccess = BlockPublicAccess.BLOCK_ALL, PublicReadAccess = false, //WebsiteIndexDocument = "index.html", RemovalPolicy = RemovalPolicy.DESTROY, Cors = new ICorsRule[] { new CorsRule() { AllowedHeaders = new string[] { "Authorization", "Content-Type", "Origin" }, AllowedMethods = new HttpMethods[] { HttpMethods.GET, HttpMethods.HEAD }, AllowedOrigins = new string[] { "*" } } } }); Bucket privateBucket = new Bucket(this, "privateBucket", new BucketProps() { BlockPublicAccess = BlockPublicAccess.BLOCK_ALL, PublicReadAccess = false, RemovalPolicy = RemovalPolicy.DESTROY, Cors = new ICorsRule[] { new CorsRule() { AllowedHeaders = new string[] { "Authorization", "Content-Type", "Origin" }, AllowedMethods = new HttpMethods[] { HttpMethods.GET, HttpMethods.HEAD }, AllowedOrigins = new string[] { "*" } } } }); // The S3 bucket deployment for the website var websiteDeployment = new BucketDeployment(this, "TestStaticWebsiteDeployment", new BucketDeploymentProps() { Sources = new [] { Source.Asset("./src/website") }, DestinationBucket = websiteBucket, RetainOnDelete = false }); var privateDeployment = new BucketDeployment(this, "TestPrivateDeployment", new BucketDeploymentProps() { Sources = new [] { Source.Asset("./src/private") }, DestinationBucket = privateBucket, RetainOnDelete = false }); var cloudfrontOAI = OriginAccessIdentity.FromOriginAccessIdentityName(this, "CloudfrontOAIName", cloudfrontOAIName); websiteBucket.GrantRead(cloudfrontOAI.GrantPrincipal); privateBucket.GrantRead(cloudfrontOAI.GrantPrincipal); var cachePolicy = new CachePolicy(this, "TestCachePolicy", new CachePolicyProps() { CachePolicyName = "TestCachePolicy", Comment = "Cache policy for Testing", DefaultTtl = Duration.Seconds(0), CookieBehavior = CacheCookieBehavior.All(), HeaderBehavior = CacheHeaderBehavior.AllowList( "Authorization", "Content-Type", "Origin" ), QueryStringBehavior = CacheQueryStringBehavior.All(), EnableAcceptEncodingBrotli = false, EnableAcceptEncodingGzip = false }); var websiteOrigin = new S3Origin(websiteBucket, new S3OriginProps() { OriginAccessIdentity = cloudfrontOAI }); var privateOrigin = new S3Origin(privateBucket, new S3OriginProps() { OriginAccessIdentity = cloudfrontOAI }); var dummyOrigin = new HttpOrigin("example.com", new HttpOriginProps() { ProtocolPolicy = OriginProtocolPolicy.HTTPS_ONLY }); // default behavior is for the privateOrigin var defaultPrivateBehavior = new BehaviorOptions { AllowedMethods = AllowedMethods.ALLOW_ALL, CachePolicy = cachePolicy, OriginRequestPolicy = OriginRequestPolicy.CORS_S3_ORIGIN, ViewerProtocolPolicy = ViewerProtocolPolicy.REDIRECT_TO_HTTPS, Origin = privateOrigin, EdgeLambdas = new IEdgeLambda[] { new EdgeLambda() { EventType = LambdaEdgeEventType.VIEWER_REQUEST, FunctionVersion = functionsStack.checkAuthHandler.CurrentVersion, }, new EdgeLambda() { EventType = LambdaEdgeEventType.ORIGIN_RESPONSE, FunctionVersion = functionsStack.httpHeadersHandler.CurrentVersion } } }; // this behavior is for dummy origin var parseAuthBehavior = new BehaviorOptions { AllowedMethods = AllowedMethods.ALLOW_GET_HEAD_OPTIONS, CachePolicy = cachePolicy, OriginRequestPolicy = OriginRequestPolicy.CORS_S3_ORIGIN, ViewerProtocolPolicy = ViewerProtocolPolicy.REDIRECT_TO_HTTPS, Origin = dummyOrigin, EdgeLambdas = new IEdgeLambda[] { new EdgeLambda() { EventType = LambdaEdgeEventType.VIEWER_REQUEST, FunctionVersion = functionsStack.parseAuthHandler.CurrentVersion, } } }; var refreshAuthBehavior = new BehaviorOptions { AllowedMethods = AllowedMethods.ALLOW_GET_HEAD_OPTIONS, CachePolicy = cachePolicy, OriginRequestPolicy = OriginRequestPolicy.CORS_S3_ORIGIN, ViewerProtocolPolicy = ViewerProtocolPolicy.REDIRECT_TO_HTTPS, Origin = dummyOrigin, EdgeLambdas = new IEdgeLambda[] { new EdgeLambda() { EventType = LambdaEdgeEventType.VIEWER_REQUEST, FunctionVersion = functionsStack.refreshAuthHandler.CurrentVersion, } } }; var signOutBehavior = new BehaviorOptions { AllowedMethods = AllowedMethods.ALLOW_GET_HEAD_OPTIONS, CachePolicy = cachePolicy, OriginRequestPolicy = OriginRequestPolicy.CORS_S3_ORIGIN, ViewerProtocolPolicy = ViewerProtocolPolicy.REDIRECT_TO_HTTPS, Origin = dummyOrigin, EdgeLambdas = new IEdgeLambda[] { new EdgeLambda() { EventType = LambdaEdgeEventType.VIEWER_REQUEST, FunctionVersion = functionsStack.signOutHandler.CurrentVersion, } } }; Distribution distribution = new Distribution(this, "TestCloudfrontDistribution", new DistributionProps() { Comment = "Test Website Distribution", DefaultRootObject = "index.html", PriceClass = PriceClass.PRICE_CLASS_ALL, GeoRestriction = GeoRestriction.Whitelist(new [] { "IN" }), DefaultBehavior = defaultPrivateBehavior, }); distribution.AddBehavior("/parseauth", dummyOrigin, parseAuthBehavior); distribution.AddBehavior("/refreshauth", dummyOrigin, refreshAuthBehavior); distribution.AddBehavior("/signout", dummyOrigin, signOutBehavior); var domainNameOutput = new CfnOutput(this, "TestWebsiteDistributionDomainName", new CfnOutputProps() { Value = distribution.DistributionDomainName }); }
public IRequest Marshall(UpdateStreamingDistributionRequest updateStreamingDistributionRequest) { IRequest request = new DefaultRequest(updateStreamingDistributionRequest, "AmazonCloudFront"); request.HttpMethod = "PUT"; if (updateStreamingDistributionRequest.IsSetIfMatch()) { request.Headers.Add("If-Match", updateStreamingDistributionRequest.IfMatch); } string uriResourcePath = "2014-01-31/streaming-distribution/{Id}/config"; uriResourcePath = uriResourcePath.Replace("{Id}", updateStreamingDistributionRequest.IsSetId() ? updateStreamingDistributionRequest.Id.ToString() : ""); request.ResourcePath = uriResourcePath; StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture); using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings() { Encoding = System.Text.Encoding.UTF8, OmitXmlDeclaration = true })) { if (updateStreamingDistributionRequest != null) { StreamingDistributionConfig streamingDistributionConfigStreamingDistributionConfig = updateStreamingDistributionRequest.StreamingDistributionConfig; if (streamingDistributionConfigStreamingDistributionConfig != null) { xmlWriter.WriteStartElement("StreamingDistributionConfig", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); if (streamingDistributionConfigStreamingDistributionConfig.IsSetCallerReference()) { xmlWriter.WriteElementString("CallerReference", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingDistributionConfigStreamingDistributionConfig.CallerReference.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig != null) { S3Origin s3OriginS3Origin = streamingDistributionConfigStreamingDistributionConfig.S3Origin; if (s3OriginS3Origin != null) { xmlWriter.WriteStartElement("S3Origin", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); if (s3OriginS3Origin.IsSetDomainName()) { xmlWriter.WriteElementString("DomainName", "http://cloudfront.amazonaws.com/doc/2014-01-31/", s3OriginS3Origin.DomainName.ToString(CultureInfo.InvariantCulture)); } if (s3OriginS3Origin.IsSetOriginAccessIdentity()) { xmlWriter.WriteElementString("OriginAccessIdentity", "http://cloudfront.amazonaws.com/doc/2014-01-31/", s3OriginS3Origin.OriginAccessIdentity.ToString(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { Aliases aliasesAliases = streamingDistributionConfigStreamingDistributionConfig.Aliases; if (aliasesAliases != null) { xmlWriter.WriteStartElement("Aliases", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); if (aliasesAliases.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2014-01-31/", aliasesAliases.Quantity.ToString(CultureInfo.InvariantCulture)); } if (aliasesAliases != null) { List <string> aliasesAliasesitemsList = aliasesAliases.Items; if (aliasesAliasesitemsList != null && aliasesAliasesitemsList.Count > 0) { int aliasesAliasesitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); foreach (string aliasesAliasesitemsListValue in aliasesAliasesitemsList) { xmlWriter.WriteStartElement("CNAME", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); xmlWriter.WriteValue(aliasesAliasesitemsListValue); xmlWriter.WriteEndElement(); aliasesAliasesitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetComment()) { xmlWriter.WriteElementString("Comment", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingDistributionConfigStreamingDistributionConfig.Comment.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig != null) { StreamingLoggingConfig streamingLoggingConfigLogging = streamingDistributionConfigStreamingDistributionConfig.Logging; if (streamingLoggingConfigLogging != null) { xmlWriter.WriteStartElement("Logging", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); if (streamingLoggingConfigLogging.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingLoggingConfigLogging.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } if (streamingLoggingConfigLogging.IsSetBucket()) { xmlWriter.WriteElementString("Bucket", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingLoggingConfigLogging.Bucket.ToString(CultureInfo.InvariantCulture)); } if (streamingLoggingConfigLogging.IsSetPrefix()) { xmlWriter.WriteElementString("Prefix", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingLoggingConfigLogging.Prefix.ToString(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { TrustedSigners trustedSignersTrustedSigners = streamingDistributionConfigStreamingDistributionConfig.TrustedSigners; if (trustedSignersTrustedSigners != null) { xmlWriter.WriteStartElement("TrustedSigners", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); if (trustedSignersTrustedSigners.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2014-01-31/", trustedSignersTrustedSigners.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } if (trustedSignersTrustedSigners.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2014-01-31/", trustedSignersTrustedSigners.Quantity.ToString(CultureInfo.InvariantCulture)); } if (trustedSignersTrustedSigners != null) { List <string> trustedSignersTrustedSignersitemsList = trustedSignersTrustedSigners.Items; if (trustedSignersTrustedSignersitemsList != null && trustedSignersTrustedSignersitemsList.Count > 0) { int trustedSignersTrustedSignersitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); foreach (string trustedSignersTrustedSignersitemsListValue in trustedSignersTrustedSignersitemsList) { xmlWriter.WriteStartElement("AwsAccountNumber", "http://cloudfront.amazonaws.com/doc/2014-01-31/"); xmlWriter.WriteValue(trustedSignersTrustedSignersitemsListValue); xmlWriter.WriteEndElement(); trustedSignersTrustedSignersitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetPriceClass()) { xmlWriter.WriteElementString("PriceClass", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingDistributionConfigStreamingDistributionConfig.PriceClass.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2014-01-31/", streamingDistributionConfigStreamingDistributionConfig.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } } try { string content = stringWriter.ToString(); request.Content = System.Text.Encoding.UTF8.GetBytes(content); request.Headers["Content-Type"] = "application/xml"; } catch (EncoderFallbackException e) { throw new AmazonServiceException("Unable to marshall request to XML", e); } return(request); }
public IRequest Marshall(CreateStreamingDistributionRequest createStreamingDistributionRequest) { IRequest request = new DefaultRequest(createStreamingDistributionRequest, "AmazonCloudFront"); request.HttpMethod = "POST"; string uriResourcePath = "2013-11-11/streaming-distribution"; if (uriResourcePath.Contains("?")) { int queryIndex = uriResourcePath.IndexOf("?", StringComparison.OrdinalIgnoreCase); string queryString = uriResourcePath.Substring(queryIndex + 1); uriResourcePath = uriResourcePath.Substring(0, queryIndex); foreach (string s in queryString.Split('&', ';')) { string[] nameValuePair = s.Split('='); if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0) { request.Parameters.Add(nameValuePair[0], nameValuePair[1]); } else { request.Parameters.Add(nameValuePair[0], null); } } } request.ResourcePath = uriResourcePath; StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture); using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings() { Encoding = System.Text.Encoding.UTF8, OmitXmlDeclaration = true })) { if (createStreamingDistributionRequest != null) { StreamingDistributionConfig streamingDistributionConfigStreamingDistributionConfig = createStreamingDistributionRequest.StreamingDistributionConfig; if (streamingDistributionConfigStreamingDistributionConfig != null) { xmlWriter.WriteStartElement("StreamingDistributionConfig", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); if (streamingDistributionConfigStreamingDistributionConfig.IsSetCallerReference()) { xmlWriter.WriteElementString("CallerReference", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingDistributionConfigStreamingDistributionConfig.CallerReference.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig != null) { S3Origin s3OriginS3Origin = streamingDistributionConfigStreamingDistributionConfig.S3Origin; if (s3OriginS3Origin != null) { xmlWriter.WriteStartElement("S3Origin", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); if (s3OriginS3Origin.IsSetDomainName()) { xmlWriter.WriteElementString("DomainName", "http://cloudfront.amazonaws.com/doc/2013-11-11/", s3OriginS3Origin.DomainName.ToString(CultureInfo.InvariantCulture)); } if (s3OriginS3Origin.IsSetOriginAccessIdentity()) { xmlWriter.WriteElementString("OriginAccessIdentity", "http://cloudfront.amazonaws.com/doc/2013-11-11/", s3OriginS3Origin.OriginAccessIdentity.ToString(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { Aliases aliasesAliases = streamingDistributionConfigStreamingDistributionConfig.Aliases; if (aliasesAliases != null) { xmlWriter.WriteStartElement("Aliases", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); if (aliasesAliases.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2013-11-11/", aliasesAliases.Quantity.ToString(CultureInfo.InvariantCulture)); } if (aliasesAliases != null) { List <string> aliasesAliasesitemsList = aliasesAliases.Items; if (aliasesAliasesitemsList != null && aliasesAliasesitemsList.Count > 0) { int aliasesAliasesitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); foreach (string aliasesAliasesitemsListValue in aliasesAliasesitemsList) { xmlWriter.WriteStartElement("CNAME", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); xmlWriter.WriteValue(aliasesAliasesitemsListValue); xmlWriter.WriteEndElement(); aliasesAliasesitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetComment()) { xmlWriter.WriteElementString("Comment", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingDistributionConfigStreamingDistributionConfig.Comment.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig != null) { StreamingLoggingConfig streamingLoggingConfigLogging = streamingDistributionConfigStreamingDistributionConfig.Logging; if (streamingLoggingConfigLogging != null) { xmlWriter.WriteStartElement("Logging", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); if (streamingLoggingConfigLogging.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingLoggingConfigLogging.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } if (streamingLoggingConfigLogging.IsSetBucket()) { xmlWriter.WriteElementString("Bucket", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingLoggingConfigLogging.Bucket.ToString(CultureInfo.InvariantCulture)); } if (streamingLoggingConfigLogging.IsSetPrefix()) { xmlWriter.WriteElementString("Prefix", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingLoggingConfigLogging.Prefix.ToString(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig != null) { TrustedSigners trustedSignersTrustedSigners = streamingDistributionConfigStreamingDistributionConfig.TrustedSigners; if (trustedSignersTrustedSigners != null) { xmlWriter.WriteStartElement("TrustedSigners", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); if (trustedSignersTrustedSigners.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2013-11-11/", trustedSignersTrustedSigners.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } if (trustedSignersTrustedSigners.IsSetQuantity()) { xmlWriter.WriteElementString("Quantity", "http://cloudfront.amazonaws.com/doc/2013-11-11/", trustedSignersTrustedSigners.Quantity.ToString(CultureInfo.InvariantCulture)); } if (trustedSignersTrustedSigners != null) { List <string> trustedSignersTrustedSignersitemsList = trustedSignersTrustedSigners.Items; if (trustedSignersTrustedSignersitemsList != null && trustedSignersTrustedSignersitemsList.Count > 0) { int trustedSignersTrustedSignersitemsListIndex = 1; xmlWriter.WriteStartElement("Items", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); foreach (string trustedSignersTrustedSignersitemsListValue in trustedSignersTrustedSignersitemsList) { xmlWriter.WriteStartElement("AwsAccountNumber", "http://cloudfront.amazonaws.com/doc/2013-11-11/"); xmlWriter.WriteValue(trustedSignersTrustedSignersitemsListValue); xmlWriter.WriteEndElement(); trustedSignersTrustedSignersitemsListIndex++; } xmlWriter.WriteEndElement(); } } xmlWriter.WriteEndElement(); } } if (streamingDistributionConfigStreamingDistributionConfig.IsSetPriceClass()) { xmlWriter.WriteElementString("PriceClass", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingDistributionConfigStreamingDistributionConfig.PriceClass.ToString(CultureInfo.InvariantCulture)); } if (streamingDistributionConfigStreamingDistributionConfig.IsSetEnabled()) { xmlWriter.WriteElementString("Enabled", "http://cloudfront.amazonaws.com/doc/2013-11-11/", streamingDistributionConfigStreamingDistributionConfig.Enabled.ToString(CultureInfo.InvariantCulture).ToLower(CultureInfo.InvariantCulture)); } xmlWriter.WriteEndElement(); } } } try { string content = stringWriter.ToString(); request.Content = System.Text.Encoding.UTF8.GetBytes(content); request.Headers["Content-Type"] = "application/xml"; } catch (EncoderFallbackException e) { throw new AmazonServiceException("Unable to marshall request to XML", e); } return(request); }