public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonCloudFrontConfig config = new AmazonCloudFrontConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonCloudFrontClient client = new AmazonCloudFrontClient(creds, config);

            ListStreamingDistributionsResponse resp = new ListStreamingDistributionsResponse();

            do
            {
                ListStreamingDistributionsRequest req = new ListStreamingDistributionsRequest
                {
                    Marker = resp.StreamingDistributionListNextMarker
                    ,
                    MaxItems = maxItems
                };

                resp = client.ListStreamingDistributions(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.StreamingDistributionListItems)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.StreamingDistributionListNextMarker));
        }
Esempio n. 2
0
        private IAmazonCloudFront GetCloudFrontClient()
        {
            var cfg = new AmazonCloudFrontConfig {
                MaxErrorRetry = 3
            };

            return(AWSClientFactory.CreateAmazonCloudFrontClient(_accessKeyId, _secretAccessKeyId, cfg));
        }
Esempio n. 3
0
 /// <summary>
 /// Create a client for the Amazon CloudFront service with the specified configuration
 /// </summary>
 /// <param name="awsAccessKey">The AWS Access Key associated with the account</param>
 /// <param name="awsSecretAccessKey">The AWS Secret Access Key associated with the account</param>
 /// <param name="config">Configuration options for the service like HTTP Proxy, # of connections, etc
 /// </param>
 /// <returns>An Amazon CloudFront client</returns>
 /// <remarks>
 /// </remarks>
 public static AmazonCloudFront CreateAmazonCloudFrontClient(
     string awsAccessKey,
     string awsSecretAccessKey,
     AmazonCloudFrontConfig config
     )
 {
     return(new AmazonCloudFrontClient(awsAccessKey, awsSecretAccessKey, config));
 }
Esempio n. 4
0
        public override IAmazonCloudFront CreateCloudFrontClient()
        {
            var config = new AmazonCloudFrontConfig()
            {
                RegionEndpoint = AWSRegion
            };

            return(new AmazonCloudFrontClient(Credentials, config));
        }
        protected IAmazonCloudFront CreateClient(AWSCredentials credentials, RegionEndpoint region)
        {
            var config = new AmazonCloudFrontConfig {
                RegionEndpoint = region
            };

            Amazon.PowerShell.Utils.Common.PopulateConfig(this, config);
            this.CustomizeClientConfig(config);
            var client = new AmazonCloudFrontClient(credentials, config);

            client.BeforeRequestEvent += RequestEventHandler;
            client.AfterResponseEvent += ResponseEventHandler;
            return(client);
        }
Esempio n. 6
0
        // This method gets called by the runtime. Use this method to add services to the container
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

            services.AddLogging(builder => {
                builder.AddILoggingBuilderInstance();
            });

            services.TryAddSingleton <ISeriLogger, SeriLogger>();
            services.TryAddSingleton <IStaticWebsiteService, S3StaticWebsiteService>();
            services.TryAddSingleton <IViewRenderer, ViewRenderer>();
            services.TryAddTransient <IMailService, MailService>();
            services.TryAddTransient <IContentService, ContentService>();
            services.TryAddTransient <IBankHolidayService, BankHolidayService>();

            EnvironmentConfig environmentConfig = new EnvironmentConfig();
            AWSConfig         awsConfig         = new AWSConfig();
            CloudFrontConfig  cloudFrontConfig  = new CloudFrontConfig();
            CMSConfig         cmsConfig         = new CMSConfig();
            MailChimpConfig   mailChimpConfig   = new MailChimpConfig();
            MailConfig        mailConfig        = new MailConfig();

            Configuration.Bind("AppSettings:Environment", environmentConfig);
            Configuration.Bind("AWS", awsConfig);
            Configuration.Bind("AWS:CloudFront", cloudFrontConfig);
            Configuration.Bind("CMS", cmsConfig);
            Configuration.Bind("MailChimp", mailChimpConfig);
            Configuration.Bind("Mail", mailConfig);

            services.AddSingleton(environmentConfig)
            .AddSingleton(awsConfig)
            .AddSingleton(cloudFrontConfig)
            .AddSingleton(cmsConfig)
            .AddSingleton(mailChimpConfig)
            .AddSingleton(mailConfig);

            services.AddMailChimpClient(mailChimpConfig.ApiKey);

            AmazonS3Config s3config;

            if (environmentConfig.Name == "local")  //TODO: Should use Environment.IsDevelopment() here. When running tests it returns "Production"
            {
                s3config = new AmazonS3Config()
                {
                    RegionEndpoint = Region,
                    ServiceURL     = awsConfig.ServiceURL,
                    ForcePathStyle = true
                };
            }
            else
            {
                s3config = new AmazonS3Config()
                {
                    RegionEndpoint = Region
                };
            }
            services.AddTransient <IAmazonS3>((sP) =>
            {
                return(new AmazonS3Client(awsConfig.AccessKey, awsConfig.SecretKey, s3config));
            });

            var cloudfrontConfig = new AmazonCloudFrontConfig()
            {
                RegionEndpoint = Region
            };

            services.AddTransient <IAmazonCloudFront>((acf) =>
            {
                return(new AmazonCloudFrontClient(awsConfig.AccessKey, awsConfig.SecretKey, cloudfrontConfig));
            });

            services.AddControllers();
        }